23、如何解决合并分支时的冲突
如果事先已经约好,比如各自完成的功能,那么发生冲突的概率就很小。
如果开发时候,没有约定好规范,发生冲突概率大。
模拟场景:
在main分支上修改并保存test.html文件中的div标签的文本内容为“这是main分支上的代码”
在终端执行 git add .
git commit -m main分支修改test.html
git checkout dev (现在切换到dev分支)
在dev分支上修改并保存test.html文件中的div标签的文本内容为“这是dev分支上的代码”
在终端执行 git add .
git commit -m dev分支修改test.html
git checkout main (现在切换到main分支)
【现在把dev分支上的代码合并到main分支上】
git merge dev (发现报错merge failed。失败在test.html文件当中。)
打开test.html文件,其中可能发现有编辑器的提示。我们在这个文件的同一地方在不同分支上进行了修改,git就不知道在怎么解决,让我们来解决。
<<<<<< HEAD (当前分支修改的代码)
这是main分支上的代码
===== (等号下面是其他分支合并过来的代码)
这是dev分支上的代码
>>>>>> dev
【如何解决冲突:方式一】
git merge --abort (忽略其他分支的代码,保留原分支的代码。即忽略dev分支代码,保留main分支代码)
打开test.html文件,其中发现冲突没有了。
【如何解决冲突:方式二】
git merge dev (又出现冲突了)
打开test.html文件,手动删除符号,保存后变成如下:
这是main分支上的代码
这是dev分支上的代码
(即把特殊符号删除,留下和其他同事沟通后的代码)
在终端执行
git status (出现红色提示 both modified test.html。即同时修改了这个文件)
git add .
git commit (弹出一个可编辑的界面。输入i可进入编辑模式。输入"这是解决冲突之后的正确代码 解决了test.html当中的冲突")(这样是给大家一个标识,就是解决了哪一个分支上面的哪一个文件,最终我们怎么积解决的)(先按esc再输入:wq,就可以退出编辑界面。)
git status (此时没有东西可以提交了)
git commit -m 解决冲突之后的代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具