git merge和git rebase的区别
参考https://blog.csdn.net/u010698107/article/details/129000177
Git版本控制中,git rebase
和git merge
这两个命令都可以用来集成从一个分支和另一个分支的更改。它们是两种不同的合并方法,本文将介绍它们的差异。
下面举例说明一下这两个命令的区别,从master
拉一个叫feature
的分支出来:
在feature
分支进行了两次提交(C5、C6),此时其它人也进行了两次提交(C3、C4),并且合并到了master
分支:
feature
分支和master
分支需要进行分支合并,下面来演示git rebase
和git merge
这两个命令的差异。
git merge
操作
1 | git checkout feature |
git merge
命令会在feature
分支创建一个新的“合并的提交”(merge
commit, C7),然后将两个分支的历史联系在一起
,现有的分支不会以任何方式改变。
git rebase
操作
1 | git checkout feature |
此命令将整个feature
分支移动到master
分支的顶端,有效地将所有新提交合并到master
分支中。和git merge
不同的是,git rebase
通过为原始分支中的每个提交创建全新的提交(C5、C6)来重写历史记录。