1.1 什么是冲突?

       冲突就是指当你提交或者更新代码的时候,被合并的文件和当前的文件不一致,所造成的文件冲突,所以,从其定义上来看,冲突是发生在同一个文件上的。

1.2 产生冲突的场景

       常见的冲突产生的场景如下:

  • 更新代码
  • 提交代码
  • 多个分支代码合并到一个分支
  • 多个分支向远程的同一个分支推送代码

1.3idea中解决冲突

       假设有两个开发者同时在开发一个项目,并且编写同一个文件,工作场景如下:
1,A程序员先上传文件conflict.txt,冰继续在conflict.txt中编写内容:
1.png

2,B程序员更新项目代码,并且在conflict.txt上写代码,写完之后,提交到远程的服务器:
2.png

3,当A程序员写完了代码之后,准备提交代码了,这时的正确操作应该是,先更新,再提交,但是在更新的时候,必然会出现冲突,因为这时候更新的代码conflict.txt与本地的代码不一致了:
3.png

4,提交前,我要更新,冲突了:
4.png

5,解决冲突,方案如下:
accept yours :代表以自己的为准;
accept theirs :代表以更新下来的文件为准;
merge :代表手动解决冲突,进行合并(一般我们都选这个)
5.png

       将需要的内容点击“>>”这个按钮,就可以合并到result中,不需要的内容点击“X”按钮即可,合并完成之后,点击apply即可。

不过值得注意的是:要将每一个都要点击完。

1.4总结

  • 遇到没有改过的文件与你冲突,找到当事者,问清楚原因;
  • 不要试图拉取别的分支解决冲突,或者文件覆盖,更不要随便的以自己的为准;
  • 提交的时候,一定要记得自己改过哪些文件,避免将一些自动生成的配置文件也一并提交;
  • 提交代码是神圣的时刻,请保持清醒。