当前位置:   article > 正文

git解决合并冲突_git 合并冲突

git 合并冲突

解决合并冲突

使用git pull --rebase解决冲突

  1. 我用两个本地文件夹模拟不同的人提交代码,文件夹一对play文件进行修改,并推送到远程仓库。

在这里插入图片描述
在这里插入图片描述

  1. 文件夹二 在文件夹一提交代码后,没有进行pull。直接对play文件进行修改,添加33333,然后add和commit在push时,会报以下错误。提醒我们先进行pull。

在这里插入图片描述
在这里插入图片描述

  • 这时候我们先看下当前log

在这里插入图片描述

  1. 执行git pull --rebase

在这里插入图片描述

  1. 然后对冲突文件进行手动合并,这里的HEAD是远程的,修改playv1_3是我们添加的代码,我们可以将这部分删除。
    在这里插入图片描述

  2. 修改完后如下图所示,然后保存
    在这里插入图片描述

  3. 依次执行如下命令即可

  • git add .
  • git status
  • git rebase --continue
  • git push
    在执行完git status查看状态,可以看到提醒我们冲突解决后可以执行git rebase --continue
  • 这个时候我们在查看日志,发现并没有多出来的日志。

在这里插入图片描述

使用git pull解决冲突

如果我们在第三步的时候使用git pull的话,会出现下面第二张图,保存退出后

在这里插入图片描述
在这里插入图片描述
然后依次执行上面的4 5 (需要注意的是,这里的head代表的是我们修改的,下边是远程仓库的)。解决冲突后,我们执行git add .(如果执行了commit,那么下面第一条的信息就是我们commit的信息)。这里的commit可以执行也可以不执行。然后执行git push这时候我们再看这里的log就会多了一条我们不需要的(不执行commit也会有这么一条信息)。
在这里插入图片描述

结束语

  • 二者对比可知,rebase没有产生新的节点,使用rebase的git演进路线(提交树)是一直向前的,这样在版本回退时也很容易,用merge的git路线是跳跃的,可以明确的知道是从哪个分支或节点修改的。当合并代码有冲突时,需要手动修改冲突内容后,addcommit,push.而rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后, 再执行 git rebase–continue
    继续操作,再push.

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

  • 尽量在commit之前先进行pull操作,避免产生冲突,否则还需要解决冲突。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/459070
推荐阅读
相关标签
  

闽ICP备14008679号