分支篇-Day18|剧情 Kata:外卖 App 新功能开发,用分支并行开发不打架

9 次阅读 2026-10-30 14:29

📖 知识点回顾

  1. git branch 名 / git checkout -b 名:创建分支

  2. git switch 分支:切换分支

  3. git merge 分支:合并分支(快进合并)

  4. 冲突产生与解决:同一行不同改 → 删标记 → 重新提交

💡 团队并行流程主分支保持干净 → 每人开自己的功能分支 → 各干各的提交 → 合并回主分支 → 有冲突就手动解决

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 从 master 主分支开出两个功能分支:"会员积分" 和 "订单评价"

  2. 在两个分支上分别开发、分别提交(模拟小孙和小张并行)

  3. 各自切回 master 合并(先用 "会员积分")

  4. 合并第二个分支时,如果遇到冲突就手动解决

  5. 用 git log 验证:两个功能都进主线,分支并行没打架

参考代码(在终端依次敲)

# 0. 进仓库,保证在干净的主分支
cd ~/外卖App
git switch master
git status

# 1. 开第一个功能分支,开发并提交
git checkout -b 会员积分
echo "def 积分(): return '消费+100分'" > 会员积分.py
git add 会员积分.py
git commit -m "feat: 新增会员积分功能"

# 2. 切回主分支,开第二个功能分支(小张用)
git switch master
git checkout -b 订单评价
echo "def 评价(): return '五星好评'" > 订单评价.py
git add 订单评价.py
git commit -m "feat: 新增订单评价功能"

# 3. 把两个功能分支依次合并回主线
git switch master
git merge 会员积分
git merge 订单评价

# 4. 验证:两个功能都进主线
git log --oneline
ls

 

运行示例:

user@linux:~/外卖App$ git merge 会员积分
Updating ... 
Fast-forward
 会员积分.py | 1 +
 1 file changed, 1 insertion(+)

user@linux:~/外卖App$ git merge 订单评价
Updating ...
Fast-forward
 订单评价.py | 1 +
 1 file changed, 1 insertion(+)

user@linux:~/外卖App$ git log --oneline
b1c2d3e feat: 新增订单评价功能
a1b2c3d feat: 新增会员积分功能
...
user@linux:~/外卖App$ ls
会员积分.py 订单评价.py 外卖App.py ...

 

💡 完成动作示意:

  1. 从 master 开出 "会员积分"" 订单评价 " 两个分支,各自开发提交

  2. 依次 git merge 会员积分、git merge 订单评价 合并回主线

  3. git log 看到两个功能的提交、ls 看到两个新文件

  4. 两个功能在独立分支并行开发,互不干扰,最后都干净地进了主线 —— 分支大法成功!

🧠 思考题

  1. 为什么要在 "主分支" 上再开功能分支,而不是直接在 master 上写?主分支保持干净有什么好处?(提示:出问题容易回退、发布稳定)

  2. 如果两个功能分支恰好都改了 "外卖 App.py" 同一行,合并第二个时会发生什么?怎么处理?(提示:Day16/17 冲突)