分类: 项目管理
2013-08-30 21:26:20
当前分支状态:
D---E test
/
A---B---C---F master
使用rebase 合并:
A---B---C---F---D'---E' master, test
注意,其中 D’, E’ 的 commit SHA 序号跟本來 D, E 是不同的,相当于砍掉之后重新commit。
当conflic时,与 merge 相似,出现conflict时rebase暂停,解决冲突后继续。与merge不同的是merge发生conflict时只需要解决冲突一次,然后commit。而 rebase 的 conflict 可能会需要重复解决冲突好几次。
切换到master分支,运行git rebase test。Git首先会将test分支的代码checkout出来,作为工作目录,然后将master分支从test分支创建起的所有改变的补丁,依次打上。如果出现冲突,解决冲突后,运行git rebase –continue继续直到完成。如果不想处理冲突,可以运行git rebase –abort选择放弃rebase过程,或运行git rebase –skip直接用test分支的取代当前分支的。
注: 使用 merge 合并后:
D--------E
/ \
A---B---C---F----G master, test