Git必知必会基础(09):本地冲突(conflicts)解决--merge
本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html
演示场景
在合并分支过程中,可能会遇到冲突,本篇演示用merge解决本地冲突。
基于master主分支,创建两个开发分支dev_1和dev_2,分别做修改:
dev_1第一次修改并提交到本地仓库,然后推送到远程仓库
dev_2第一次修改并提交到本地仓库,然后推送到远程仓库
dev_1第二次修改并提交到本地仓库,然后推送到远程仓库
dev_2第二次修改并提交到本地仓库,然后推送到远程仓库
切换到master,先合并dev_1,没有冲突,然后合并dev_2分支,产生冲突,解决冲突,最后push到远程master分支
准备数据
远程数据

远程commit id

克隆到本地

创建dev_1分支

修改qzcsbj.txt内容,然后提交到本地仓库,最后推送到远程仓库

切换到master,创建dev_2分支

修改qzcsbj.txt内容,然后提交到本地仓库,最后推送到远程仓库

再次切换到dev_1做一次提交

再次切换到dev_2做一次提交

远程分支内容



合并分支并解决冲突
切换到master,此时无更新,否则需要拉取最新master

先合并dev_1,没有冲突

然后合并dev_2分支,产生冲突,冲突文件是qzcsbj.txt

也可以这样查看冲突的文件:git diff --name-only --diff-filter=U

查看分支差异:git diff master dev_2

冲突文件内容:

HEAD表示当前分支

修改冲突文件

提交并推送到远程仓库

查看分支合并图
git log --graph --oneline


git log --graph


结论:保留了每个分支的独立性,分支的提交历史可追溯,合并图非线性,如果分支多且合并多,互相交叉,易读性不高
分支后续操作
此时分支如果不要了就可以删除
如果要继续在分支在开发,需要同步master分支,rebase即可:
切换到对应分支,使远程库和本地库同步:git pull --rebase origin master 如果有冲突忽略冲突(丢弃当前补丁的重放,即忽略掉当前补丁):git rebase --skip 如果有冲突,强制推送:git push -f origin 当前分支名,如果没有冲突:git push origin 当前分支名
下一篇演示分享分支rebase。
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!

浙公网安备 33010602011771号