对git中rebase(变基)的理解

rebase:

1、
在和远程分支同步后,我们对我们的一个文件做了两次提交:
提交状态如下:

* 我的第二次提交
* 我的第一次提交
* 我开始提交的起点

2、
我们尝试推送本地分支失败,
这说明有人先于我们向远程分支作了推送。
按照经验,先pull一下,pull完并处理可能的冲突后再push,
此时的提交状态:

*  先pull并merge后,再次push产生的提交 
|\  
| * 另一个人向我工作分支push的提交
* | 我的第二次提交
* | 我的第一次提交
|/  
* 我开始提交的起点

3、
可以看出,上面产生了分叉。
在当前的分支上执行:git rebase
执行后的状态:


* 我的第二次提交
* 我的第一次提交
* 另一个人向我工作分支push的提交
* 我开始提交的起点

原本分叉的提交现在变成一条直线了

4、
就是说,我原来是从“我开始提交的起点”这个commit作为基础,开始修改的。
但是在变基以后,
改成了从“另一个人向我工作分支push的提交”这个commit作为基础,开始修改了。

 

5、在pull后再push时产生分支的原因是,
我的提交和别人的提交都是从同一个commit的点开始修改的,
因为以同一个commit作基础分别作了修改,由此产生了分叉。

但是变基的操作,是把我的提交的起始的commit,从两人共用的commit点
改成了pull时,拉过来的别人的提交点。
所以变基的意思是:改变了我的提交的基础点。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值