冲突情况一
首先甲和乙同时从远程仓库拉取v1版本的代码,然后乙先修改代码产出v3版本的代码进行提交并且成功,随后甲修改v1版本代码产出v2版本的代码,此时想要提交到origin/master
,但是远程的最新版本并不是之前的v1了,这里就产生了冲突(红线标识)。
举例如下
win这边进行修改排序算法为从大到小排序
然后做add
和commit
操作,但没push
然后ubuntu这一方做出了如下修改
然后ubuntu这边做add
、commit
和push
操作
此时win这边做push
操作则会出现冲突
此时输入git pull
会自动帮我们进行合并到本地的master
分支,然后我们再进行push
即可
可以看到这是一次merge
动作
冲突情况二
首先在win这边对README文件进行修改
同时win这边进行 add
和commit
操作,但没有push
然后ubuntu这边对在README文件相同位置进行修改
然后win这边再进行push
操作,出现冲突
然后进行pull
但是此时由于win修改的位置和pull下来的版本在同一个位置进行了修改产生了冲突,不能自动merge
,要手动解决,此时冲突的README文件如下
然后win这边再做 add
和commit
和push
的操作解决冲突