git blame
命令可以查看每行代码的提交详情,包括提交人、时间等信息,成熟的编辑器如 Sublime、Jetbrains 等都集成了这个功能,使用起来非常简单,今天我们来关注下这个命令本身,毕竟在服务器上我们可不能安装这些编辑器。
1 | $ git blame <filename> |
得到的结果,每列分别为
1 | 提交 sha1 用户名 提交时间 行数 代码 |
这是最简单的语法,我们查看文件的每一行代码的最后提交详情,不过这通常不是我们的目的,一般只需要看某一行或某个范围行,这时可以使用 -L
参数。
1 | $ git blame <filename> -L <start>[,<end>] |
查看第 10 行
1 | $ git blame <filename> -L 10,10 |
查看第 10 行及以后
1 | $ git blame <filename> -L 10 |
查看第 10 到 20 行
1 | $ git blame <filename> -L 10,20 |
end
也可以加上正负符号,比如
查看 10 行以后 5 行的数据
1 | $ git blame <filename> -L 10,+5 |
查看 10 行以前 5 行的数据
1 | $ git blame <filename> -L 10,-5 |
start
和 end
又不止于数字,它还可以是个正则表达式,如果 start
为正则表达式,则会匹配到 end
行,如果 end
为正则表达式,则从 start
行开始匹配,到匹配行截止,如果 start
或者 end
其中之一有值,则从匹配行开始显示全部内容。
查看正则匹配到 20 行
1 | $ git blame <filename> -L /filter/,20 |
查看 3 行到正则匹配行
1 | $ git blame <filename> -L 3,/filter/ |
-L
参数的功能还不止这些,有个更智能的方式是直接通过函数名来查看一个区域块的代码
1 | $ git blame <filename> -L:<func_name> |
这是很方便的能力,不过只能识别文件最外层的方法名和类名
1 | $ git blame <filename> -L:filter |
完整参数列表
1 | usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file> |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章