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即可:
1 2 3 4 5 | 切换到对应分支,使远程库和本地库同步: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
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-01-21 【转】SpringBoot的44种启动器
2023-01-21 SSM整合(Spring + SpringMVC + MyBatis)