行者孙Python

急救篇-Day26|考古溯源:git log 高级用法,git blame 查谁改的

📖 知识点

1. git log 高级用法

git log --oneline --graph --all    # 图形化看提交历史/分支
git log -n 5                       # 只看最近5条提交
git log --oneline --author=小张    # 查某人的提交
git log --oneline 文件名            # 查某个文件的提交历史

 

--graph 用图形展示分支结构,--author 按作者筛,-n 限定条数。

2. git blame:查每一行是谁改的(查户口神器)

git blame 文件名

 

运行示例:

9d0e1f2 (阿琳 2026-10-30)  1  def 支付():
8c7d6e5 (小孙 2026-10-29)  2      return '支付成功'
a1b2c3d (老李 2026-10-28)  3  def 订单():

 

git blame 列出文件的每一行:谁在什么时候、哪次提交改的。出 Bug 了,一眼看出是哪行、谁写的、提交 ID 是多少。

💡 生活比喻git blame 像 "给每行代码查户口":每一行都写着 "这条是谁在什么时候写进来的"。线上出了问题,它能精准揪出 "嫌疑人" 和 "作案提交"。

3. 只看某几行是谁改的

git blame -L 1,5 文件名

 

-L 1,5 只看第 1 到第 5 行,精确锁定问题区域。

⚠️ 易错提醒

  1. git blame 文件 看每行是谁改的(提交 ID、作者、日期)

  2. git log --graph 图形化看分支,--author 按作者筛

  3. blame 查出的提交 ID,可配合 git log/show 查看那次提交详情

⚔️ 剧情 Kata 实战任务

任务需求:

  1. 用 git log --oneline --graph --all 图形化看提交历史

  2. 用 git log --oneline 外卖App.py 查某个文件的提交历史

  3. 用 git blame 外卖App.py 查每行是谁改的

  4. 用 git blame -L 1,3 外卖App.py 只看前 3 行

  5. 体会 "考古溯源":能揪出每行代码的 "来龙去脉"

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

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

# 1. 图形化看提交历史
git log --oneline --graph --all

# 2. 查某个文件的提交历史
git log --oneline 外卖App.py

# 3. 查每行是谁改的
git blame 外卖App.py

# 4. 只看前几行
git blame -L 1,3 外卖App.py

 

运行示例:

user@linux:~/外卖App$ git log --oneline --graph --all
* 9d0e1f2 (tag: v1.0) feat: 新增支付模块(阿琳)
* 8c7d6e5 feat: 新增优惠(小孙)
| * e2f3a4b (feature-会员日) feat: 新增会员日活动
|/
* 5f6a7b8 feat: 增加上线公告
...

user@linux:~/外卖App$ git blame 外卖App.py
8c7d6e5 (小孙 2026-10-29) 1  def 优惠():
5f6a7b8 (老李 2026-10-28) 2      return '满减'
a1b2c3d (老李 2026-10-27) 3  def 订单():

 

💡 完成动作示意:

  1. git log --graph --all → 图形化看到主分支和 feature - 会员日 分支的走向

  2. git blame 外卖App.py → 每一行都标着 "谁在什么时候改的"

  3. 例如 "def 优惠 ()" 是 小孙 2026-10-29 改的、"def 订单 ()" 是老李改的 —— 出 Bug 能精准溯源!

🧠 思考题

  1. git log --oneline --graph --all 比普通 git log 多展示了什么?(提示:分支结构和所有分支)

  2. git blame 文件 显示每一行的哪些信息?线上出 Bug 时它怎么帮你 "揪出嫌疑人"?

‹ 返回目录
🏠首页 Python 📦资源 👤关于我