【Git】胖飚帮学:git merge 和 git rebase
2019-07-01 本文已影响0人
失语失芯不失梦
最近使用git过程中突然想到git merge 和 git rebase 两个操作,网上查了一下两者的区别单看文字描述有点不清晰,于是手动操作了一把。 新建了测试仓库,在master操作了2次(commit test1 和commit test2)。然后新建分支branch_01,此时基准为commit test2。在branch_01分支进行了3次提交(branch commit1、2、3),同时master分支新增了操作master commit1、master commit2,时间纬度上master commit1 在 branch commit2 和 branch commit3 之间。分支情况如下图:
在master 分支 执行 git merge branch_01 结果如图:
远程的代码仓库提交历史是这样的:
在master 分支 执行 git rebase branch_01 结果如图:
远程的代码仓库提交历史是这样的:
具体的工作原理: merge命令:git会将两个分支的共同祖先(commit test2)以及各分支的最新提交(master commit 2、branch commit 3)三方进行合并,然后生成一个新的commit提交(merge branch ‘branch_01’),完成合并。rebase 命令:git会从共同祖先开始依次提取master分支的提交,然后一次添加到branch_01分支最新提交的后边,及将 master commit1 和 master commit2 放在 branch commit3 之后,这样完成合并。