首页 > 代码库 > Linux------Git-5

Linux------Git-5

5. 分支的衍合

5.1 衍和的基本逻辑

merge操作如下图所示,就是将两个指针状态合并。

技术分享

rebase也就是衍合:

技术分享

技术分享

原理:寻找两个分支的共同祖先,根据当前分支就是现在checkout状态的分支,相对于共同祖先之后的历次提交对象生成一系列补丁文件,比如从共同的祖先文件开始,提交了10次,那么就会生成10个补丁文件,之后使用git rebase master进行衍合,这里master是基底分支,衍合会根据其最后一个提交对象为新的出发点,再把之前准备的补丁文件,一个个打,最终生成了新对象,这个对象就是master的直接下游。

这时,如果checkout master,再进行merge操作,就会fast-forward,因为已经在同一条线上了。

Linux------Git-5