冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。读起来有点绕,结合下面的案例理解。git
从上面对冲突的定义来看,冲突时发生在同一个文件上的。程序员
常见冲突的生产场景以下服务器
git的合并中产生冲突的具体状况:
<1>两个开发者(分支中)修改了同一个文件(无论什么地方)
<2>两个开发者(分支中)修改了同一个文件的名称
注意:两个分支中分别修改了不一样文件中的部分,不会产生冲突,能够直接将两部分合并。app
总结:上面各类状况的本质都是,当前文件与合并文件不一致,所以不论哪一种状况其解决冲突的方法是同样的。ide
模拟场景:idea
假设有另个开发人员开发同一个项目,而且编写同一个文件,工做流程以下:spa
1.01号程序员先上传文件conflict.txt,并继续在conflict.txt上写代码;3d
2.02号程序员更新项目代码,并在conflict.txt上写代码,写完后,在提交到远程服务端;blog
3.当01号程序员把写完后,准备提交代码了,这时的正规操做手法,先更新在提交,可是在更新的时候必然会冲突,由于这时候更新的代码conflict.txt与本地仓库代码conflict.txt不一致开发
提交前,我要更新,冲突了:
解决方案以下:
accept yours:表明以本身的为准;
accept theris:表明以更新下来的文件为准;
merge:表明手动合并
通常解决冲突咱们都是选择merge
将须要的内容点击:">>"既能够合并内容到result中,不须要的内容点击“x”便可,合并完成后点击apply便可。
值得注意的是,最将全部的“x >>”符号都要处理完,不须要的点击“x”,须要的点击“>>”
最后,不管是什么场景下产生的冲突解决方法是同样的。
多人协做开发的时候,若是出现了你没有改过的文件跟你冲突了,必定要去找到当事者,说清楚是如何冲突的;
而后协商解决,千万不要擅自拉别的分支去试图解决冲突,或找文件覆盖,更或者以本身的文件为准.
同时记住,解决了以后,要add 和 commit 最后push.为保证万无一失,最后在冲突都解决以后,重启项目;
保证至少不会有当即奔溃的现象发生.而后才去提交,push.
提交的时候,必定要保持清醒,先搞清楚本身要提交的文件之间的关系,而后再提交,这样才不会有文件缺失的问题,形成奔溃.
若是任务比较多,又开了多个分支,分别进行开发,再次强调,必定要清楚本身在各个分支上作了什么,本身要提交的是什么.最好是能作个详细的笔记,没有把握宁愿不要去提交到生产服务器.
提交代码的时候不要走神,由于这是一个神圣的时刻!