环境,a用户,b用户,远程仓库用gitee或者github
模拟冲突,a,b用户操作master主分支
第一步,a用户创建一个远程仓库,并在仓库里创建一个index.html文件,然后在这个文件里第一行写
111
(如下图红色箭头)
\
第二步,b用户拉了这份代码,看到a用户上传了index.html文件,并且第一行是
111
然后,b用户把第一行代码改为
111222
,上传远程仓库(这肯定是成功,原因是,这整个文件都是新的,然后b用户修改了上传,因为b是第一个上传的人) (如下图黄色箭头)
\
第三步,a用户修改index.html文件的第一行代码,改为
111333
情况一,然后直接上传远程仓库,这个时候会冲突,原因是: (如下图蓝色箭头)
1修改了同一行代码
2没有先拉取远程仓库的最新代码(现在远程仓库最新的是
111222
)
这个时候解决冲突是:要么不要a用户的修改的
111333
,要么覆盖远程仓库的111222
\
情况二,先拉取远程代码,这个时候会冲突,原因是: (如下图绿色箭头)
1修改了同一行代码
这个冲突叫本地解决冲突,情况一的冲突叫远程解决冲突,一般都是在本地解决冲突好一点,因为...(这是个人理解哈)
这个时候解决冲突是:删掉
111222
,写111333
看图可能更清晰一些,随便画的,凑合看吧,别喷