GIT 使用cherry-pick 重演其他分支的提交

在使用Git时是否会遇到这样的问题:
你正在使用Git进行版本控制,某天你接着昨天的工作了提交了N个提交,结果在合并远程分支的时候才发现原来你在工作之前没有注意到你要提交的分支状态
结果导致你本来要提交到hotfix分支的提交结果全部提交到了dev分支上,而远程分支你的同事已经提交了很多更改,如果遇到这种情况该怎么做呢?
  1. 从远程分支提取所有的提交(这时你本地的hotfix分支跟远程分支是一样的)
  2. 在hotfix分支上,使用cherry-pick合并原本属于hotfix分支的提交而提交到dev分支的提交(需要手动合并冲突)
  3. 切换dev分支,将属于hotfix分支的提交移除或直接恢复到最后一次dev分支历史上
  4. 切换hotfix分支并继续工作
由于cherry-pick没有使用过,所以以下是从创建仓库到完成重演的所有提交,主要是了解cherry-pick是如何工作的

git-scm#cherry-pick:可以理解为 再次提交/重演已经提交过的提交(可以在同一分支或不同分支)

注意

使用cherry-pick可以重演历史提交,但历史提交的备注会丢失,需要重新填写(个人认为是因为:备注和提交历史是保存在不同的GIT位置)

如果需要历史的备注也很简单,在重新输入备注之前使用"git show HEAD"先得到之前的备注,再然在填写到新备注上去。

 

未标题-1 拷贝2.jpg
 
参考:
    图解Git
    测试数据下载:百度云盘
 



posted @ 2015-08-10 17:31  HTL  阅读(1631)  评论(0编辑  收藏  举报
htl