git项目中经常使用merge和rabase, 由于用的不是很6, so我就想理解下他的原理。
现在,如果master中新的提交和你的工作是相关的。为了将新的提交并入你的分支,你有两个选择: merge或者rebase。
Merge
下面是merge的一个操作, 将master分支合并到feature分支。
git checkout experiment
git merge master
或是压缩在一行
git merge master experiment
image.png
整合分支最容易的方法是 merge 命令。 它会把两个分支的最新快照(C3 和 C4)以及二者最近的共同祖先(C2)进行三方合并,合并的结果是生成一个新的快照(并提交)。
Rebase
作为merge的替代选择
git checkout experiment
git rebase master
或者压缩在一行
git rebase master experiment
image.png
rabase的过程会把节点移动到分支时的起点(C2),然后每个提交创建一个新的提交(C3, C4),重写了项目历史,就好像“重新播放”一样。
网友评论