Merge与Rebase的区别
git rebase与git merge两个命令的共同点都是解决同样的问题,即都是为了整合两个分支的改动。
在工作中通常会遇到master分支更新了,而自己的分支还是基于旧的master分支。就好像下面这幅图:
Merge
将master合并(Merge)进分支中,从而使分支获得最新的master代码。
git merge brach master
Merge的做法就好像下图一样:
相比第一幅,可以看到,Merge会在branch产生新的commit。Merge有一个好处就是:Merge是无损操作,不会改变brach的历史信息。而历史信息不改变,就相当于更容易恢复某一时刻的代码。还有一点,merge把所有的解决冲突,都保存进了一个merge commit里了。
但是Merge也有一个缺点,就是每次Merge都会产生Merge commit。如果master更新非常频繁的话,这样会污染你的历史信息。但是这种污染可以通过合并commit的方法来缓解,但是还是挺麻烦的。
Rebase
Re