git冲突的场景及解决方法

git冲突的场景
  • 情景一:多个分支代码合并到一个分支时,不同的分支修改了同一个文件(不管在什么地方)或者不同的分支修改了同一个文件的名称
  • 情景二:远程分支进行push或者pull时,同一个文件被修改了,此时就需要解决冲突
情景一

在master分支上给readme.md这样的文件,其中readme.md内容为空,并且提交到master分支上。

创建一个新的分支

git checkout -b "dev"

然后在dev分支下将readme.md这个文件内容修改为

我喜欢python

并且提交到dev分支上。然后切换到master分支上

git checkout master

我们在master分支上对readme.md进行修改,添加如下内容为

我喜欢java

并且提交到master分支上,

git add readme.md
git commit -m "master提交我喜欢java"

重点来了,此时,我们需要将dev分支中内容合并到master中,即

git merge dev

报错

[root@localhost learngit]# git merge dev
Auto-merging readme.md
CONFLICT (content): Merge conflict in readme.md
Automatic merge failed; fix conflicts and then commit the result.

解决冲突

第一步:打开冲突的文件,内容如下:

<<<<<<< HEAD
我喜欢java
=======
我喜欢python
>>>>>>> dev

然后需要将<<<<<< HEAD和>>>>>>>dev之间的内容进行修改,并且需要删除<<<<<< HEAD和>>>>>>>dev

修改为如下内容

master喜欢java, dev喜欢python

然后提交到当前分支上,即master上

[root@localhost learngit]# git add readme.md
[root@localhost learngit]# git commit -m "解决conflict"

以上就能解决冲突的内容!

然后我们可以把dev分支给删除了

[root@localhost learngit]# git branch -d dev
情景二

内容相同,只不过解决的时候,我们可以先进行pull,然后在本地的分支的文件中会出现类似

<<<<<< HEAD>>>>>>>dev

然后我们在本地修改文件,然后同时删除<<<<<< HEAD>>>>>>>dev,先提交到本地分支上,然后再push到远程分支就可以解决冲突了
具体过程请参考:参考文章2


参考文章
  • https://www.cnblogs.com/yuerdong/p/10309037.html

  • https://jingyan.baidu.com/article/455a9950535895a1662778dc.html

  • https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值