2.2 合并与冲突
合并(merge)是把一个分支上的变化带回另一个分支。最常见的场景是:你在 feature 分支完成工作,然后把它合并回 main。
基本合并流程
bash
git switch main
git merge feature/search如果 Git 能自动判断怎么组合两边的修改,合并会直接完成。
什么是合并冲突?
合并冲突(merge conflict)发生在 Git 无法自动决定保留哪一边时。最常见的情况是两个分支修改了同一文件的同一区域。
正在加载概念检查...
一个真实冲突例子
假设 README.md 原本只有一行:
text
标题:Leaflet你在 main 分支把它改成:
text
标题:Leaflet 课程首页队友在 feature/home-title 分支把同一行改成:
text
标题:Leaflet 交互式学习平台当你执行:
bash
git switch main
git merge feature/home-titleGit 发现同一行被两边改成了不同结果,于是在文件里写入冲突标记:
text
<<<<<<< HEAD
标题:Leaflet 课程首页
=======
标题:Leaflet 交互式学习平台
>>>>>>> feature/home-title解决冲突不是随便删标记,而是人工决定最终文件应该是什么样子。处理完后,再执行:
bash
git add conflicted-file.md
git commit注意
看到冲突时不要急着复制命令。先读冲突区域,确认两边各自想表达什么,再决定保留一边、合并两边,还是重写这段内容。
正在加载交互实验...
一种合理解决结果
如果你认为两边都表达了有用信息,可以把最终内容改为:
text
标题:Leaflet 交互式课程首页然后执行:
bash
git add README.md
git commit这次提交表示:“冲突已经人工解决,合并完成。”