1.产生冲突原因
产生:多个开发者同时使用或者操作git中的同一个文件,最后在依次提交commit和推送push的时候,第一个操作的是可以正常提交的,而之后的开发者想要执行pull(拉)和pull(推)操作的时候,就会报冲突异常conflict。
解决:保留自己修改的数据,同时保留别人的数据信息;同时pull代码之前,需要手动解决冲突之后再作提交。
2.冲突的演示
1)在d:磁盘下创建三个目录
将”git_repository”文件夹设置成git版本控制系统
将uer1、user2文件夹作为两个不同的客户端,并在该目录创建相同的文件名称test.txt但内容不同。
2)User1文件夹下的操作
第一步,在test.txt文件同级空白处鼠标右击选择 tortoisGit --> pull
第二步,在test.txt文件同级空白处鼠标右击选择 Git-commit --提交 -- 发布
以上操作,可以操作成功。
3)user2文件加下的操作
在test.txt文件同级空白处鼠标右击选择 tortoisGit --> pull,此时会产生异常,具体信息如下:
异常描述:对以下文件的本地更改将被合并覆盖
3.冲突的解决
1)直接修改文件
第一步,选择test.txt文件鼠标右击选择 Git-commit --提交到user2的本地仓库
第二部,在test.txt文件同级空白处鼠标右击选择 tortoisGit --> pull,文件发生该边。
直接修改文件中数据,将特殊符号删除,如图所示:
保存文件:
<<<<<<< HEAD
是指你本地的分支的 ============
本地待提交的commit代码
>>>>>>>> 39645e0443a07957dae
第三步,选择test.txt文件鼠标右击选择 Git Commit --> 提交 -- >push 发布。
2)通过edit conflicts修改
选中test.txt文件,右击菜单选项 tortoiseGit --> Edit conflict
修改编辑区:将Theirs- 或者 Local-中需要的数据添加到Meged中。
保存时 标记冲突解决
通过以上操作,可以实现简单的git的冲突和冲突的解决方式。