📖 知识点回顾
git branch 名/git checkout -b 名:创建分支git switch 分支:切换分支git merge 分支:合并分支(快进合并)冲突产生与解决:同一行不同改 → 删标记 → 重新提交
💡 团队并行流程主分支保持干净 → 每人开自己的功能分支 → 各干各的提交 → 合并回主分支 → 有冲突就手动解决
⚔️ 剧情 Kata 实战任务
任务需求:
从 master 主分支开出两个功能分支:"会员积分" 和 "订单评价"
在两个分支上分别开发、分别提交(模拟小孙和小张并行)
各自切回 master 合并(先用 "会员积分")
合并第二个分支时,如果遇到冲突就手动解决
用 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 ...
💡 完成动作示意:
从 master 开出 "会员积分"" 订单评价 " 两个分支,各自开发提交
依次
git merge 会员积分、git merge 订单评价合并回主线
git log看到两个功能的提交、ls看到两个新文件两个功能在独立分支并行开发,互不干扰,最后都干净地进了主线 —— 分支大法成功!
🧠 思考题
为什么要在 "主分支" 上再开功能分支,而不是直接在 master 上写?主分支保持干净有什么好处?(提示:出问题容易回退、发布稳定)
如果两个功能分支恰好都改了 "外卖 App.py" 同一行,合并第二个时会发生什么?怎么处理?(提示:Day16/17 冲突)
行者孙Python