这种策略被称为 fast forward
有分叉的情况稍微麻烦一些,git 会将两个分支的分叉点和头部的 commit 做一次三方合并,然后形成一个新的 commit:
显然第一种方式最简便,那有没有办法在分叉的情况下仍然采用 fast forward 的策略呢,有
在 experiment 分支上执行 `git rebase master`,首先会计算出分叉点与 experiment 分支头部的两个 commit 的差异,然后以 C3 为新的基础,整合之前计算出的差异,得到一个新的 commit
var patch = C4 - C2
var C4` = C3 + patch
C4`.parent = C3
rebase 就是改变基础的意思。这下回到 master 分支执行 merge 操作,就可以实现 fast forward 了