欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(转)git rebase小计

程序员文章站 2022-07-12 14:30:32
...

原文地址:

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)。