冲突是在多人协做
开发过程当中常见的状况。
咱们先学习在同一分支下的冲突问题。
在同一分支
下,冲突的问题表现为多人
对同一文件
进行了修改
。git
模拟冲突:
一、先克隆同一个项目到两个文件夹。此时两个项目都是最新的。
二、修改第一个项目中的文件,提交到仓库。
三、再修改第二个项目中的同一个文件,至关于另外一我的在同时对项目进行了修改。
四、这时若是进行Commit操做,是没有问题的。由于Commit只提交到本地。
五、但当进行Push操做
时,就会出错
,这就是冲突
。github
冲突特征:
报错时,下面的标是红色的工具
弹出框里显示
error: failed to push some refs to …
git did not exit cleanly
并在左下角
提示你去进行Pull操做
。学习
一、先进行Pull操做,可是仍是会报错。
信息显示:
CONFLICT (content): Merge conflict in 新建文本文档.txt
Automatic merge failed; fix conflicts and then commit the result.
翻译过来就是遇到冲突
,没法将线上仓库
和本地
的这个文件进行自动合并
。
二、若是没有出错,那说明线上仓库和本地虽然有冲突,可是能够自动合并。
三、有冲突的文件会显示成警告状态
。
四、打开冲突文件,看到出现了奇怪的符号。spa
这就是git里展现冲突
的方式,HEAD
是本地
的最新版本内容,
下面的一串数字
表明线上仓库
的一个版本
,每一次commit都会产生一个这样的版本。
因此咱们能够知道的是本地版本是”嘻嘻222”,线上是”呵呵”,因此有冲突。翻译
五、一种解决方式是直接进行修改,将冲突的几行删除,修改为我要的。
六、另外一种方式是使用冲突编辑工具。
右键文件,TortoiseGit
=> Edit confilicts
七、打开后
在下面的编辑框中写上最终的代码,保存。
八、编辑完成后,保存。
九、以后就能够正常进行commit和push操做了。3d
尝试我的模拟冲突,或者几我的共同使用一个git项目作一个真实的冲突。
练习如何解决冲突,成功上传。code
github: https://github.com/lvancer/course_gitblog