急救篇-Day27|剧情 Kata:线上出 Bug,快速定位是哪个提交引起的、紧急修复

7 次阅读 2026-10-30 15:24

📖 知识点回顾

  1. git blame 文件:查每一行是谁、哪次提交改的(定位 Bug)

  2. git log --oneline:查看提交历史,找到出问题的提交 ID

  3. 修改代码 → git add → git commit:紧急修复

  4. git tag:修复后打补丁版本标签(v1.0.1)

💡 线上急救流程① blame 定位是哪个提交埋雷 → ② 修复代码 → ③ add+commit → ④ 打补丁版本标签

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 用 git blame 外卖App.py 模拟定位 "价格算错" 的代码行是谁改的

  2. 找到那行 / 那次提交(bug 提交 ID)

  3. 修改代码,紧急修复(改对价格)

  4. 用 git add + git commit 提交修复

  5. 用 git tag -a v1.0.1 打补丁版本标签,完成 "线上急救"

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

# 0. 进仓库
cd ~/外卖App

# 1. 定位:查外卖App.py每行是谁改的,找到"价格算错"的那行
git blame 外卖App.py
#   假设发现 "def 价格(): return 15元" 是某次提交(a1b2c3d)改错的

# 2. 修复:把那行价格改对
vim 外卖App.py
#   把 return 15元 改成 return 10元(正确价格)
#   (:wq 保存退出)

# 3. 确认改动,提交修复
git diff
git add 外卖App.py
git commit -m "fix: 修复订单价格计算错误"

# 4. 打补丁版本标签
git tag -a v1.0.1 -m "补丁:修复价格Bug"

# 5. 验证
git log --oneline
git tag

 

运行示例:

user@linux:~/外卖App$ git blame 外卖App.py
8c7d6e5 (小孙 2026-10-29) 1  def 价格():
a1b2c3d (老李 2026-10-28) 2      return 15元   ← 这行被老李改错了!

user@linux:~/外卖App$ git commit -m "fix: 修复订单价格计算错误"
[master f4a5b6c] fix: 修复订单价格计算错误

user@linux:~/外卖App$ git tag -a v1.0.1 -m "补丁:修复价格Bug"
user@linux:~/外卖App$ git log --oneline
f4a5b6c (tag: v1.0.1) fix: 修复订单价格计算错误
9d0e1f2 (tag: v1.0) feat: 新增支付模块(阿琳)
...

 

💡 完成动作示意:

  1. git blame 揪出 "return 15 元" 是老李在 a1b2c3d 改错的

  2. vim 把价格改成 10 元 → git diff 确认 → git add + git commit -m "fix: 修复价格Bug"

  3. git tag -a v1.0.1 打补丁标签

  4. git log 看到修复提交 + git tag 看到 v1.0.1—— 线上急救完成,Bug 修复封版!

🧠 思考题

  1. 线上出 Bug,你会用哪些命令来 "定位是哪次提交引起的"?(提示:blame 查行、log 看提交)

  2. 为什么修复完要打一个 "补丁版本标签"(如 v1.0.1)?这和打 v1.0 标签的用途有什么不同?(提示:标记紧急修复的里程碑)