美文网首页
Git 中 merge 和 rebase 的区别

Git 中 merge 和 rebase 的区别

作者: 路Promenade | 来源:发表于2016-12-11 00:25 被阅读533次

    $ git pull --rebase$ git pull区别
    git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。更新本地仓库


    merge 和 rebase
    merge 是合并的意思,rebase是复位基底的意思。
    现在我们有这样的两个分支,test和master,提交如下:

         D---E test
        /
    A---B---C---F master
    

    在master执行git merge test然后会得到如下结果:

         D--------E
        /          \
    A---B---C---F---G    test , master
    

    在master执行git rebase test,然后得到如下结果:

     A---C---D---E---C `---F` test , master
    

    可以看到merge操作会生成一个新的节点,之前提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的操作。

    通过上面可以看到,想要更好的提交树,使用rebase操作会更好一点,这样可以线性的看到每一次提交,并且没有增加提交节点。
    在操作中。merge操作遇到冲突时候,当前merge不能继续下去。手动修改冲突内容后,add 修改,commit 就可以了
    而rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase -continue继续操作,或者git rebase -skip忽略冲突。

    相关文章

      网友评论

          本文标题:Git 中 merge 和 rebase 的区别

          本文链接:https://www.haomeiwen.com/subject/pegumttx.html