问题:
git rebase vs git merge 。两者区别以及应用场景是什么?
回答:
简而言之 merge 和 rebase
-
Merge
:利用一个新commit
把一个分支上的所有更改合并到另外一个分支 -
Rebase
:利用rebase合并另外的分支之后不产生一个新的commit,而是基于合并的两个分支的祖先,把当前分支更改的commit移到另被合并的分支所有commit之后。
使用场景
Merge
- 假设你新建一个分支开发一个新特性。当你开发完新特性之后,你需要把新分支上的更改合并到master分支(不考虑新分支的所有更改commit,会产生一个 merge xxx to master 的commit)
Rebase
- 继续假设情景,当你新建一个分支开发一个新特性,另外master 有更新了其他代码,这些代码与你开发的新特性无关,但是你仅仅是想 pull 线上 master 最新代码以避免长时间不合并master代码产生大量冲突。
此文只适合使用 Git 一定经验的开发者。
网友评论