准备工作:
1.创建一个gitee远程仓库https://gitee.com/xxxxxxx.git
2.初始化两个本地git仓库用户,目的是模拟多人协作开发时提交代码发生冲突的场景
3.解决冲突并提交。
进入正题:
lisi 通过vim指令修改readme.md文件内容,推送到远程仓库
zhangsan用户将远程仓库代码拉到本地库,同时拉取lisi修改之后的代码。
zhangsan悄悄的将代码提交到远程仓库,注意此时lisi同学是不知道远程代码已经改变了的。
lisi继续修改这个文件内容
lisi推送到远程库时候,被提醒要先更新本地文件与远程一致才可以继续推送。
lisi按照提示更新并合并本地资源时候,发生冲突了。
lisi通过vim检查冲突文件,并手动处理解决
lisi处理完冲突,:wq 保存文件
lisi 处理完冲突后 按照 先 add 再 commit的方式,这样才会视为解决了冲突文件了
lisi成功解决了冲突文件
zhangsan要想修改此文件也是需要先合并解决冲突再推送远程才行,除非zhangsan修改的位置与lisi不一样,那就不会发生冲突了。
zhangsan需要先fetch远程代码到本地,然后合并时候发现,并没有冲突需要处理
经过测试发现,简单的fetch其实并没有成功更新工作区文件,所以尝试pull,成功更新本地
zhangsan直接将修改后文件推送到远程仓库即可。