[git]解决 merge 的时候CONFLICT问题

关于 git 的基本使用,可以参考 git-简易指南,这篇介绍了git的基本使用,但是对多人协作的时候,合并冲突的解决没有详细的介绍。本文结合自己使用的场景进行介绍

使用场景:
用户A和B在不同的电脑协同工作,使用github进行代码托管,使用仓库seefeelRepo
A对本地仓库(seefeelRepo)的文件X.txt做出了修改; 
B也对本地仓库的X.txt做出了修改,修改内容与A不同;
A先把本地修改同步到github;
之后,B要同步本地仓库到github,

一,把远端仓库fetch下来,同时merge
B要做的第一件事就是pull
$ git pull origin master
或者,用fetch + merge
$ git fetch orgin
$ git merge master origin/master

这里,origin/master就是远端(github)上面的仓库,master就是本地的仓库

如果有CONFLICT,接下来会提示
[git]解决 merge 的时候CONFLICT问题_第1张图片

二,找到冲突
上面的意思是说, lecture-3存在冲突,自动合并失败,需要手动解决冲突
接下来执行 
$ git diff,它会告诉你那里存在冲突,如下图。
[git]解决 merge 的时候CONFLICT问题_第2张图片

三,解决冲突
接下来,就要编辑这个文件,把冲突的部分解决掉。有必要还要跟协同工作的伙伴沟通一下。
冲突文件大概张成下面的样子
[git]解决 merge 的时候CONFLICT问题_第3张图片
上图中被红框标记的部分,前两个红框之间的部分,是本地的内容。
后两个红框之间的部分,是origin/master远端的内容。怎么修改决定于你。但是最后要把红框红的内容删除


四,CONFLICT解决,同步远端
解决了冲突后,顺序执行add,commit,push到远端
$ git add lecture-3
$ git commit -m “bbbbb"
$ git push origin master
push之后,得到下图所示的内容
[git]解决 merge 的时候CONFLICT问题_第4张图片

这时候如果再用pull指令,会提示already up-to-date


有哪里不清楚,有疑问的,欢迎留言交流 

你可能感兴趣的:(git)