Merge the incoming changes into the current branch
找到两个分支的祖先 commit,然后将公共分支最新版合并到自己的分支,形成一个新的 commit 提交,用图表示如下。
Rebase the current branch on top of the incoming
Rebase 则是重新基于一个分支进行 commit,即将当前分支从祖先的 commit 后所提交的 commit 均撤销,将他们放到一个缓存中,然后基于一个分支的后面,将缓存的 commit 按照顺序以一个个新增到该分支后面,用图表示如下,将 4 和 5 所提交的 commit 放到缓存中,然后按顺序将其新增到 6 的后面。
而使用 Rebase 和 Merge 的基本原则可以总结如下三条:
下游分支更新上游分支内容时使用 Rebase(拉取master分支到开发分支)
上游分支合并下游分支内容时使用 Merge(将开发分支合并到master、release分支)
更新当前分支内容时一定要使用 --rebase 参数