标签:
merge操作如下图所示,就是将两个指针状态合并。
rebase也就是衍合:
原理:寻找两个分支的共同祖先,根据当前分支就是现在checkout状态的分支,相对于共同祖先之后的历次提交对象生成一系列补丁文件,比如从共同的祖先文件开始,提交了10次,那么就会生成10个补丁文件,之后使用git rebase master进行衍合,这里master是基底分支,衍合会根据其最后一个提交对象为新的出发点,再把之前准备的补丁文件,一个个打,最终生成了新对象,这个对象就是master的直接下游。
这时,如果checkout master,再进行merge操作,就会fast-forward,因为已经在同一条线上了。
标签:
原文地址:http://www.cnblogs.com/stevenotes/p/5889181.html