您当前的位置: 首页 >  令狐掌门 git

git pull --rebase的作用是什么,它与git pull有什么区别?

令狐掌门 发布时间:2020-08-23 03:39:01 ,浏览量:3

      在push代码时,会提示使用git pull命令,也就是拉取远端代码,更新我们的仓库,那么为什么又要加个 --rebase命令呢?下面来说说这个问题,先从这两命令开始。

      git pull = git fetch + git merge FETCH_HEAD        git pull --rebase =  git fetch + git rebase FETCH_HEAD 

      二者的区别是,在fetch之后的操作不同,merge与rebase的不同。

      假设当前master的提交如下:

      如果是你或者你的同事在cid2点,开发进度是cid20(或者突然撇出一个分支,假设是tmp分支),此时要把cid20提交到master

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

        新增了一次提交记录cid6, 似乎也没有什么问题。如果你装了小乌龟,查看提交日志,可能就是下面的样子:

       那么来看看git rebase,  在master执行git rebase tmp,操作之后的分支如下:

       二者对比可知,rebase没有产生新的节点,使用rebase的git演进路线(提交树)是一直向前的,这样在版本回退时也很容易,用merge的git路线是跳跃的,如果版本回退你也找不到自己想要的版本,如果在merge时出现了冲突那就麻烦了,当前merge就不能继续进行下去,需要手动修改冲突内容后,add,commit, push. 而rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后, 再执行 git rebase –continue 继续操作,再push.

       想要更好的提交树,建议使用rebase操作会更好一点,这样可以线性的看到每一次提交,并且没有增加提交节点。不过也有些项目,不建议使用rebase, 这就得看公司与项目的规定。

       那么到此git pull --rebase与git pul的区别也讲清楚了。 

      

      

关注
打赏
1688896170
查看更多评论

令狐掌门

暂无认证

  • 3浏览

    0关注

    485博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0653s