【Git】git使用 - 冲突conflict的解决演示

冲突的解决

  (如果git使用不熟练)建议在push不了时,pull之前。在本地创建一个新的分支并commit到local,以保证本地有commit记录,万一出什么问题,可以找回代码,以免代码丢失。

  (更甚者,把整个文件夹备份,不然出现找不回代码那就开心了)

  多人开发时Git下冲突的产生和解决

演示

  项目中有一个文件test.txt,其内容为(以下是在github仓库中截得文件内容):

image

  1、保证项目的正确性,先pull到最新版本。

  2、修改local的test.txt的文件内容,修改后的内容是:

image

然后local查看状态,及commit到本地仓库。

image

  3、 (再1之后),修改test.txt,并push到remote。

(以下是我直接在github的仓库编辑提交的。)

image

查看remote的commit log,可以发现有一次新的提交。

image

这样就造成了冲突,因为local的test.txt版本与服务器的版本不一致。

 

4、push本地的commit,发现无法push。

image

发现需要先 git pull,于是先更新。

image

pull后,给出了明确的错误提示”Automatic merge failed; fix conflicts and then commit the result.”。

此时查看test.txt的内容:

image

其中<<<<<<< HEAD 到 ======= 中间的内容是local提交的。

======= 到 >>>>>>> commit-id 是远程仓库中的内容。

(和svn类似。)

如何解决冲突? 删除这些注释,保证test.txt的内容是最终push版本的内容。

修改冲突后的test.txt内容:

image

特别,在eclipse中即使是解决了冲突,文件的冲突图标还在,但并不影响commit&push。如下:

image

5、冲突解决后,在git status可以看到当前的文件状态:

(特别需要注意的是当前分支会处在一个MERGING状态下,以及刚才处理的冲突文件test.txt处于Unmerged paths下。)

image

根据提示,用git add test.txt,然后在git commit和git push。

image

image

此时去看remote中的test.txt内容和commit log:

image

image

作者: VergiLyn 

出处: http://www.cnblogs.com/VergiLyn/ 

备注:  一只凄惨的中华田园犬.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值