git rebase

通常的 workflow 是个人从 master 上拉一个分支然后自己开发相关的模块,经过数次 commit 再与 master merge.
在与 master merge 时可能出现有冲突的情况,通常是 master 分支上也有人 commit, 并且与本分支冲突,此时想要合并可以使用两种方法

merge

1
git merge branch-a

将 branch-a 合并到当前分支中,出现的冲突需要手动解决然后再次提交

这样会使 master 分支分叉,有时希望项目的 master 保持单一的历史发展轨迹,不希望分叉,这时可以采用 rebase 操作.

rebase

1
git rebase master

将当前分支 rebase 到 master 上,相当于将 branch-a 的最后一次 commit 的源提交修改为 master 的最后一次提交,中间也可能会有 conflict, 将 conflict 解决后可以继续 rebase 操作。

1
git rebase --continue

rebase 操作可以是整个项目的开发轨迹在一条直线上,相对于一个 merge, rebase 包括了所有的组合变化。