雅乐网

计算机技术、学习成长

工具&框架 » Git/GitHub » 深入理解Git原理(3)rebase

深入理解Git原理(3)rebase

大家好,今天小乐和大家分享一下git rebase ~

当我们在dev分支想要merge主分支时

上一讲我们讲到可以使用git merge命令,合并后我们可以得到一个新的commit,它的parent有两个

如果使用 git rebase

git rebase master之后,dev分支的两个绿色commit会从原先的base(蓝色)分离出来,然后接到master后面,形成这样的效果:

要注意原来的dev分支上的两个commit并不能直接搬过来,因为改变base后一个commit的parent就会发生改变,也就导致了不同的SHA1. 因此,git rebase后,原先的两个commit变成了永远用不到的commit,它会在某个时刻被git的垃圾回收机制删除。

rebase后新的两个commit和原先灰色的两个commit,除了parent不一样之外,其余的都是相同的。也就是说,rebase会产生新的commit。这些新的commit和原有的commit只有parent是不一样的。

merge vs rebase ?

merge的好处是他总是准确地保留了提交的历史,只是看上去可能比较混乱。

rebase可以将历史整理为单一的一条链,看上去很整洁。但他让原本并行开发的commit有了先后顺序,可以说修改了历史。

除此之外,rebase还可以合并多个commit成一个commit(使用-i选项),让项目提交历史看上去更整洁~

 

谢谢观看!下次小乐会跟大家讲关于分布式系统中的git命令~

 

 

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/master_git_3_rebase.html

上一篇:

下一篇:

我要评论

验证码*: 4 + 1 =