Git 合并冲突及解决(一)

Git 分支冲突及解决

一、单个分支下多人协作

情景一:多人编辑了同一文件

用户一修改了 readme 并提交:

png

用户二也修改了 readme ,当 pull 的时候因为本地也修改过 readme 了与远程仓库内容不一致了,造成了冲突。这里提示我们本地修改的内容还没有暂存,需要先暂存起来。

在这里插入图片描述

暂存后,再次 pull,就会自动合并,合并的冲突保存在有冲突的文件内

在这里插入图片描述

我们查看一下它是怎么合并并保存冲突的

在这里插入图片描述

需要注意的是 “<<<<<<<” 和 ”“ 之间的是本地做出的修改,而 ”“ 与 ”>>>>>>>>“ 之间的是远程仓库的修改内容,并给出冲突的提交版本号信息,接下来要做的就是打开该文件,手动选择应该怎么解决,是保留自己的修改删除远程仓库的还是放弃自己的采用别人的,还是结合二者?手动修改后再次提交

在这里插入图片描述


情景二:重命名与编辑(一)

用户一把 readme 重命名了

在这里插入图片描述

用户二还在原来的 readme 上进行编辑,当 pull 时,会自动重命名并进行合并,合并采用的是”递归策略“,一般涉及在分支合并中找共同祖先,概念较多,此处不展开了,这里自动默认接受用户一的 rename 操作,如果不接受,可以在解决冲突后再改回去。(这里需要两个人协商好到底叫什么,或者由谁以后进行重命名操作等,以免带来复杂冲突)

在这里插入图片描述


情景三、删除与编辑

用户一直接把 README.md 删掉了

在这里插入图片描述

用户二可能还在基础这个文件进行编辑,再次 pull,又冲突了

在这里插入图片描述

经过沟通后,用户二如果觉得该文件还是不要删,还有用,那么就可以重新加回来

在这里插入图片描述

用户一重新拉取一下

在这里插入图片描述


情景四、重命名与编辑(二)

用户一对文件重命名并修改了文件内容

在这里插入图片描述

用户二很不巧,也出于某种原因进行了重命名并进行了编辑

在这里插入图片描述

当用户二拉取的时候,就冲突了

在这里插入图片描述

根据提示,你可以 rm 掉不想要的内容,add 想要留下来的东西,比如这里假设经过协商后,用户二放弃自己的修改内容,接受用户一的修改内容。

在这里,我遇到了一个问题,直接 rm 掉 README.md 和 other_name.md,add readme.md 后进行 commit,实际这三个文件都被干掉了,没办法每次操作都 status 一下,也确实提示了 deleted: readme.md,如下图所示,有知道这是为什么的,欢迎评论区告知一下。我后面为了强行留下 readme.md,下面又做了一步 restore 操作。

在这里插入图片描述

虽然上面的操作把 readme.md 给保留下来了,并删除了 README 和 other_name.md ,但是 readme 中的文件是有冲突的,需要解决冲突

在这里插入图片描述

最后 commit 提交冲突解决情况并 push

在这里插入图片描述

用户一重新 pull 一下:

在这里插入图片描述


二、分支合并冲突

待更。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值