关于多人开发下git pull报错代码冲突问题的解决方案
问题描述
最近多人开发项目习惯性先 git pull
来更新代码的时候,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge: Please, commit your changes or stash them before you can merge
没有切实经历多人开发解决过这个问题的属实看着很头疼,解决报错问题的第一步要学会看报错信息。
问题原因
出现这个问题的原因是其他人修改了某文件并提交到版本库中去了,而你本地也修改了某文件,这时候你进行git pull操作刚好本地和云端版本库中的文件内容不一致,出现冲突了,解决方法在上面的提示中也说的很明确了。
解决策略分析
我们先需要 git add && git commit && git pull
三连操作,让 git 知道我们的提交代码改了哪些东西。
这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况:
- commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
- pull是为了本地 commit 和远程commit 的对比记录
至于我们所考虑上面三连操作中的 pull 会不会把本地代码覆盖:
git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉
详细图解代码提交方案
最终的详细解决方案,我选择重现案例并以图给出,毕竟我首次解决也深知网上形形色色解决方案文字的不易懂和实操的难度。
如果对你有帮助,请留下宝贵的赞,谢谢。