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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!