分支操作冲突出现与解决
开发中对不同分支下同一文件进行修改后执行合并时就会出现文件修改冲突情况,这里说明一种比较常见的冲突问题 以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 操作即可
远程仓库内容如下:
网友评论