下载工作台
Git 与团队协作

合并分支与冲突处理

试读上半部分 · 解锁后可读全文

第 5 章 · 合并分支与冲突处理

本章目标:用工作台 合并分支feature 合进 main;读懂冲突标记并在编辑器里手工解决;理解「先切到 main 再合并」;完成一次可复现的单人冲突演练。

学时建议:3.5~4 小时(含 2 小时跟练)

前置git-collab ch04(已有 feature 分支经验);ch03 会暂存提交。


5.1 场景说明:功能做完了,怎么并回 main

你在 feature/product-filter 上 SRX 改完、自测通过、也 commit 了。接下来要:

  1. 把 feature 的提交合并main
  2. 推送到 GitHub(ch08
  3. 开 PR 给同事 Review(ch09

合并若两人改过同一行,Git 不会替你做决定——会出现 冲突,本章教你在工作台里安全解决。


5.2 学完你能

能力验收
合并流程切 main → 合并 feature → 提交
冲突标记<<<< ==== >>>>
解决冲突删标记、保留正确内容、暂存、提交
方向说清「当前分支 = 合入目标」
习惯合并前 status clean、feature 已提交

5.3 合并前检查清单(逐项打勾)

  • [ ] feature 上所有改动已 暂存 + 提交(ch03)
  • [ ] 终端 git status → working tree clean
  • [ ] 本地 main 尽量新(ch08 pull;单人练习可跳过)
  • [ ] 知道当前要在 main 上执行合并

为什么 合并在「接收方」分支上执行:你要把 feature 合进 main,人就要站在 main 上拉 feature 进来。


5.4 无冲突合并(先走通 happy path)

步骤 1 — 确认 feature 有独有提交

cd ~/dev-workspace/shop-demo
git checkout main
git log --oneline -3
git checkout feature/ch04-practice   # 换成你的 feature 名
git log --oneline -3

步骤 2 — 切到 main

仓库 → GitHub 远程仓库 → 分支 → 切换分支main

或终端:git checkout main

步骤 3 — 合并

仓库 → GitHub 远程仓库 → 分支 → 合并分支

选择 源分支:你的 feature/...

(界面文案可能是「要合并的分支」——以实际对话框为准。)

步骤 4 — 若无冲突

可能弹出成功提示,或自动生成 merge commit

终端:

git log --oneline -5 --graph

你应该看到 main 上多了 feature 的提交,或出现 Merge branch 'feature/...' 一条。

步骤 5 — 验证文件

feature 里改过的 README.md 等,在 main 上应能看到。


5.5 冲突是什么:Git 不知道留哪边

mainfeature 改了同一文件的同一区域,合并会暂停并标记:

<<<<<<< HEAD
main 上这一段的文字
=======
feature 上这一段的文字
>>>>>>> feature/ch05-conflict-demo
标记含义
<<<<<<< HEAD当前分支(合并时你在 main,即 main 侧)
=======分隔线
>>>>>>> feature/...要合进来 的分支侧

你的任务:改成最终想要的一版,并删掉所有标记行


5.6 跟练:单人制造并解决一次冲突(必做)

步骤 1 — 从 clean main 开始

cd ~/dev-workspace/shop-demo
git checkout main
git status

步骤 2 — 建 feature 并改 README 第一行

git checkout -b feature/ch05-merge-demo

编辑 README.md 第一行为:

以下内容需解锁后阅读

试读已结束。解锁本章 ¥5.00,或开通年度会员畅读全部教程。
年度会员 ¥199.00/年; 小紫 AI 工作台有效会员 ¥99.00/年

正文仅在服务端鉴权后下发,未付费无法获取下半部分内容。