美文网首页
git merge与rebase

git merge与rebase

作者: 石_a41c | 来源:发表于2019-12-11 17:22 被阅读0次

    前言

    在使用git进行版本管理的项目中,当完成一个特性的开发并将其合并到master分支时,我们有两种方式:git mergegit rebase。通常,我们对git merge使用的较多,而对于git rebase使用的较少。下面我们就来讲一讲git mergegit rebase的差别和在实际中的使用。

    git pull

    git pullgit fetch + git merge FETCH_HEAD的缩写。所以,默认情况下,git pull就是先fetch,然后执行merge操作,如果加--rebase参数,就是使用git rebase代替git merge

    merge 和 rebase

    merge是合并的意思,rebase是复位基底的意思。

    现在我们有这样的两个分支,testmaster,提交如下:

           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---B---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/gkhagctx.html