Git 操作之解决冲突

Git在pull的时候是非常容易冲突的,不仅仅是在于修改文件冲突,还有一种冲突是由于只commit不push的情况下进行pull

具体情况如下:

git 冲突问题
1.a修改了README文件,commit(但不push)
2.b也修改了README文件,同时增加了hello.c文件,commit & push了
此时a更新,就会出现冲突,这不仅仅是冲突,而且提交者不正确处理,会出现提交两次hello.c的文件,或者可能还会删掉文件。因为它与SVN不一样,SVN只管提交自己的的修改,保存的是差异化内容;但Git不是这样的,所以需要谨慎处理

解决办法:
a当前应该保持干净的分支(就算有commit也不影响,因为当前状态已包含commit, 当前应该是没有修改或新增)
在a目录下创建前切换分支(同时会把commit的记录保留),意思是把内容先切换过去分支上保存:
git checkout -b test_merge
然后再切回master:
git checkout master
强行重置到master最新状态:
git reset --hard origin/master
再把test_merge合并回来master:
git merge test_merge
此时,先把冲突解决,然后再提交(就不会出现提交2次的情况了)

这个情况在我所在的项目里已经有人多次出现,如果出现类似情况,一定要慎重处理,否则会出现麻烦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值