下面举例说明一下这两个命令的区别,从
master 拉一个叫feature的分支出来,
在
feature 分支进行了两次提交,此时其它人也进行了两次提交,并且合并到了 master 分支,
此时是无法push到远程仓库的,需要进行分支合并,下面来演示
git rebase 和 git merge 这两个命令的差异。1、
git merge 操作git merge命令会在feature分支创建一个新的“合并的提交”(merge commit),现有的分支不会以任何方式改变。
这意味着每次合并上游(upstream)更改时,
feature分支将有一个多余的合并提交。如果master分支更新频繁,这可能会导致feature分支历史记录有大量的合并提交记录。2、
git rebase 操作此命令将整个
feature 分支移动到 master 分支的顶端,有效地将所有新提交合并到master 分支中。和git merge不同的是,git rebase通过为原始分支中的每个提交创建全新的提交来重写历史记录。
rebase的主要好处就是历史记录更清晰,没有不必要的合并提交,没有任何分叉。
