在git
中,有两种方法可以合并两个分支(branch),即git rebase
和 git merge
。
在日常使用git
中,大家接触git merge
比较多,那我们从git merge
说起。
我在分支work上完成了开发工作,需要将其集成到master分支上,执行命令
git checkout master
git merge work
具体的merge
流程是这样的,获取master
的快照,获取work
分支的快照,获取两者最近的共同祖先的快照,将三方合并,然后将合并这个修改提交。这就是为什么merge
的时候总会产生一个新的提交。
再来说一下git rebase
,中文将rebase
翻译为变基。它的原理是首先找到这两个分支的最近共同祖先,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件,然后将当前分支指向目标基底, 最后以此将之前另存为临时文件的修改依序应用。
网友评论