`

(转)git rebase小计

阅读更多

原文地址:

http://www.cnblogs.com/kym/archive/2010/08/12/1797937.html

 

已知项目存在master分支和test分支,master分支上有4个提交点master0,master1,master2,master3,并且test分支是由master分支迁出的分支,在master1提交点上迁出为test0。所以test分支上有提交点master0,test0,test1,test2这4个提交点。

 

master0(初始化后的版本)
||
v
master1===test0==>test1===>test2
||
v
master2===>master3

 如图所示,其实master1和test0是同一个提交点,代码完全一致。

现需要将test分支修改(test1,test2)移至master分支上,这是就需要git rebase命令

(1)切换到master分支

git checkout master

 (2)进行rebase

git rebase test

 这个时候,git做了些什么呢?

(a)先将test分支的代码checkout出来,作为工作目录

(b)然后将master分支从test分支创建起的所有改变的补丁,依次打上。如果打补丁的过程没问题,rebase就搞定了

(c)如果打补丁的时候出现了问题,就会提示你处理冲突。处理好了,可以运行git rebase –continue继续直到完成

(d)如果你不想处理,你还是有两个选择,一个是放弃rebase过程(运行git rebase –abort),另一个是直接用test分支的取代当前分支的(git rebase –skip)。

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics