一、什么是Git冲突?
在多分支并行处理时,每一个分支可能是基于不同版本的主干分支创建的。如果每隔分支都独立运行而不进行合并,就没有问题,但是如果在后续操作过程中进行合并的话,就有可能产生冲突。比如B1, B2的两个分支都是基于master分支创建出来的。B1分支如果和B2分支修改了同一份文件的话,那么在合并时,以哪一个文件为准呢,这就是所谓的冲突。
二、版本冲突类型:
一般分两种:1.修改不同文件 2.修改同一文件
三、冲突的识别
当执行 git merge
或 git rebase
命令时,如果出现冲突,Git会明确指出哪些文件冲突。
四、演示冲突(以pycharm为例)
第一步:先在git上,分别拉去两个项目,项目A和项目B:
项目A和项目B:此时版本记为:v1
第二步:项目A和项目B,修改不同文件,先后提交代码
1.项目A修改demo.py文件并提交代码:此时项目A和仓库版本此时:v2
2.项目B:此时版本为:v1,修改testdata.txt文件,并提交
查看冲突
此时提示,需要先进性pull拉去,在提交,因为版本不一致,所以需要先进行更新同步
第三步:项目A和项目B,修改相同文件,先后提交代码
此时版本是一致的,如图
这时,同时修改文件同一内容
然后B再提交
五、解决冲突
第一种:两个不同文件冲突
这个好解决,直接按pycharm提示合并即可,不同考虑先后问题
当你点击“合并”时,pycharm先是拉去了最新代码,然后又进行了提交
第二种:同一文件版本冲突
这种需要你手动调整冲突位置的内容,调整先后顺序或删除某条内容;
调整完成后,需要再次重新提交一次,即可解决冲突问题