Git 解决冲突

1. 冲突的发生

假设现在有两个分支A,B(对应于同一远程分支),目前两个分支内容都与远程分支一致。此时,在A分支test进行更改并提交push远程分支,B分支上也对test文件进行更改(注意,更改前没有从远程分支pull),更改完毕后,执行git pull操作就会发生冲突。

2. 解决冲突

依据B分支的更改是否commit提交至本地仓库,有下面两种方法解决冲突。

2.1 更改未提交至本地仓库

这种情况下直接执行git pull会出现如下的提示信息:

我们可以使用git stash 命令将本地的更改暂存,执行git stash list查看暂存的本地更改:

这时就可以执行git pull从远程拉取更新,然后还原暂存内容(git stash pop stash@{0}:这个过程会自动合并远程更新与本地暂存),会得到如下提示消息:

说明自动合并失败,需解决其中的冲突,查看冲突文件内容如下:

其中edit3为远程pull的内容,edit4为本地暂存的内容,选择需要保存的内容,随后提交至本地仓库。(ref:http://www.01happy.com/git-resolve-conflicts/

2.2 更改提交至本地仓库

(1)对于这种情况,执行git pull会自动执行合并,发生冲突有如下提示信息:

查看冲突文件内容如下:

其中edit2为本地更改内容,new为远程娥分支内容,手动更改冲突文件内容后提交至本地仓库即可。

(2)解决此类冲突还有一个方法。因为冲突是由于git pull拉取远程内容导致,那本地只需将分支更改为执行git pull命令之前的状态即可,执行git rest --merge,可将自动合并冲突的文件内容更改为执行git pull命令之前的状态。(ref:https://blog.csdn.net/wenwenxiong/article/details/47813277

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值