合并分支除了有
merge
指令,还有一个变价rebase
,将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。
如果
从master 分支的C2提交上开出 experiment 分支,并在 experiment 提交了C4,而同时 master 分支上也提交了C3、C4两个提交,如果要合并两个提交到 experiment
当然可以使用 merge
,但是使用 merge
会多一条 Merge
提交,并且提交按实际提交时间排序,也就是 C4 如果先提交,合并后C3、C5提交会位于C4之后
使用 rebase
则先将原C4 暂存,然后从 master 合并 C3、C4提交,最后在把C4提交合到 experiment 上
使用
git rebase [branch]
这个[branch] 参数指的是当前分支从哪开出来的分支,如图例 就是 git branch master
重要
如果提交存在于你的仓库之外,而别人可能基于这些提交进行开发,那么不要执行变基。 否则,另一个人需要重新拉取分支