git blame
2026/6/9 22:39:11 网站建设 项目流程

文章目录

  • 1. 简介
  • 2. 格式
  • 3. 选项
  • 4. 示例
    • 4.1 基本用法
    • 4.2 显示指定行范围
    • 4.3 显示作者邮箱
    • 4.4 忽略空白变更
    • 4.5 检测跨文件移动的代码
    • 4.6 查看某行何时被删除
  • 5. 注意
    • 5.1 常见输出格式
    • 5.2 `git blame` vs `git log`
    • 5.3 查看重构前的代码出处
    • 5.4 常用别名设置
  • 6. 小结
  • 参考文献

1. 简介

git blame用于查看文件中每一行代码的最后修改信息,包括修改人、修改时间和对应的提交哈希。

简单来说:git blame告诉你“这行代码是谁写的、什么时候写的”。

典型场景:

  • 定位 bug 是谁引入的
  • 了解某行代码的修改原因
  • 代码审查时追溯历史

2. 格式

gitblame[<options>]<file>

3. 选项

-L<start>,<end>只显示指定行号范围(如`-L10,20`) -n, --show-number 显示原始提交的行号(默认已显示)-w忽略空白字符的变更-M|-C|-C-C检测跨文件移动或复制的代码(`-C`级别越高检测越广)--reverse反向 blame,查看某行何时被删除(结合新旧版本使用)-e显示作者邮箱而非用户名-s隐藏作者名(只显示提交哈希)--since<date>只显示指定日期之后的修改

4. 示例

4.1 基本用法

# 查看 main.go 文件的每行修改信息gitblame main.go

输出示例:

a1b2c3d4 (张三 2024-01-15 10:30:00 +0800 1) package main e5f6g7h8 (李四 2024-02-20 14:20:00 +0800 2) import "fmt" a1b2c3d4 (张三 2024-01-15 10:30:00 +0800 3) i9j0k1l2 (王五 2024-03-10 09:00:00 +0800 4) func main() { e5f6g7h8 (李四 2024-02-20 14:20:00 +0800 5) fmt.Println("hello") a1b2c3d4 (张三 2024-01-15 10:30:00 +0800 6) }

4.2 显示指定行范围

# 只显示第 4 到第 6 行gitblame-L4,6main.go

4.3 显示作者邮箱

# 显示邮箱而非用户名gitblame-emain.go

4.4 忽略空白变更

# 忽略仅空白字符的修改gitblame-wmain.go

4.5 检测跨文件移动的代码

# 检测从其他文件复制或移动过来的代码gitblame-Cmain.go

4.6 查看某行何时被删除

# 使用 reverse 查看文件某行何时被删除gitblame--reverse旧版本..新版本 -- main.go

5. 注意

5.1 常见输出格式

字段说明示例
提交哈希最后修改该行的提交 IDa1b2c3d4
作者最后修改人张三
时间最后修改时间2024-01-15 10:30:00 +0800
行号原文件中的行号1)
代码该行内容package main

5.2git blamevsgit log

命令粒度用途
git blame行级别查看某一行是谁改的
git log文件级别查看文件的提交历史

5.3 查看重构前的代码出处

# 检测从其他文件移动来的代码(更彻底)gitblame-C-Cmain.go

5.4 常用别名设置

gitconfig--globalalias.bl"blame -w"gitconfig--globalalias.blamee"blame -e"# 使用别名gitbl main.gogitblamee main.go

6. 小结

需求命令说明
查看文件每行修改信息git blame <file>最常用,显示作者、时间、提交
显示指定行范围git blame -L 10,20 <file>只查看感兴趣的行
忽略空白变更git blame -w <file>避免被格式化干扰
显示作者邮箱git blame -e <file>方便邮件联系
检测跨文件移动git blame -C <file>追溯重构后代码的来源

一句话总结git blame是代码追溯的“侦探工具”,帮你快速定位每一行代码的“最后修改人”和“修改原因”。**


参考文献

Git - git-blame Documentation

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询