这篇文章中的内容,自己没有试验


from:http://www.phpboke.com/git_detail.html


看到一篇git merge 和git rebase区别的文章解了我一直的困扰,特此分享

起因

前两天和项目组的成员分享了git相关知识,因为我发现大家再运行git pull时没有加后面的参数 –rebase。

也就是说,如果你运行git pull,那么git会帮你做两件事情,首先拿到远程最新的代码,然后运行 git merge。

那么如果是git pull –rebase呢?也是会拿到最新代码,然后运行git rebase。

接下来的问题就是git merge 和git rebase的区别了。简单来说,git merge和git rebase从最终效果来看没有任何区别,都是将不同分支的代码融合在一起,但是生成的代码树就稍微有些不同。(具体请猛击这里)

那么假设下面两个代码树,你愿意维护或者继续再那一个上面进行工作呢?

(1)git merge                                   (2) git rebase

如果是我,我会选择第二个,因为它整体是一个线性开发过程,看起来一目了然。而第一种显然被很多分支搞的很乱(你能告诉我图1中那个颜色的分支是master分支么?)