Git分支教程(下)

分支操作冲突出现与解决

开发中对不同分支下同一文件进行修改后执行合并时就会出现文件修改冲突情况,这里说明一种比较常见的冲突问题 以master 和leaf01 两个分支进行演示说明。

本地分支操作冲突

修改master与leaf01分支前git01.txt 文件内容状态

master 主干文件内容:


leaf01 分支文件内容:


分支leaf01 下修改给git01.txt 并执行提交操作 效果如下


主干master 下修改git01.txt 并执行提交操作


执行合并操作 此时发现git 在合并中产生冲突


执行cat git01.txt  可以看出冲突文件内容


Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容  

<<<<<<< HEAD  当前git 指向分支 这里指的为master

=======  分离不同分支修改的内容

>>>>>>> leaf01  leaf01 与 master 在git01.txt 同一行同时出现了修改操作 这里git 是不允许发生的

此时出现冲突后 这里对git01.txt 内容进行修改 (实际开发视情况而定 这里将内容合并为一行)


修改完毕master下执行提交即可 执行命令查看分支合并图 git log --graph --pretty=oneline


多人协同操作冲突

拉取远程库dev 并在本地创建dev开发库,执行命令 git checkout -b dev origin/dev  这里以同台机器不同窗口来模拟两个用户操作同一分支同一文件(实际开发时多人操作统一文件冲突情况比较常见)

这里两个客户端以c1与c2来描述

c1 客户端本地修改dev 分支git01.txt 文件并在本地执行提交操作 效果如下


执行远程推送 将本地C1客户端提交的git01.txt 推送到远程dev分支


而此时C2 客户端在本地同样修改了dev分支git01.txt 文件并在本地执行提交


执行推送操作 此时冲突出现 原因是另外一个用户推送的文件与当前客户端推送内容存在冲突:


此时解决方式Git 已有对应提示 Push 之前先执行Pull 操作 将远程文件拉取到本地 解决完冲突后再次执行Push 操作

冲突解决

先执行Pull 拉取操作


查看冲突文件内容


这里在本地先处理冲突 将文本进行合并 然后提交 在 push 操作即可


远程仓库内容如下:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容