我看到了很多关于使用方法的问题git blame
,但我并不真正了解它们。
Blame我在 GitHub 界面上的文件顶部看到一个按钮。单击它后,它会在左侧栏中显示一些与用户名的差异。这说明什么?
为什么git blame
实际使用,除了 GitHub?
来自git-blame:
使用上次修改该行的修订版中的信息注释给定文件中的每一行。或者,从给定的修订开始注释。
当指定一次或多次时,-L 将注释限制为请求的行。
例子:
johndoe@server.com:~# git blame .htaccess
...
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300 4) allow from all
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300 5)
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300 6) <IfModule mod_rewrite.c>
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300 7) RewriteEngine On
...
请注意,git blame
它不会按时间顺序显示每行修改历史。它只显示谁是最后一个更改文档中的一行的人,直到HEAD
.
也就是说,为了查看文档行的完整历史记录/日志,您需要git blame path/to/file
为git log
.
这是为了弄清楚哪个同事写了特定的行或破坏了项目,所以你可以责怪他们:)
blame 命令是 Git 的一项功能,旨在帮助您确定谁对文件进行了更改。
尽管它的名字听起来很负面,但 git blame 实际上是无害的。它的主要功能是指出谁更改了文件中的哪些行以及原因。它可以成为识别代码更改的有用工具。
基本上,git-blame
用于显示文件的每一行最后修改的版本和作者。这就像检查文件的开发历史。
该git blame
命令用于了解谁/哪个提交负责对文件进行的最新更改。还可以看到每一行的作者/提交。
git blame filename
(提交负责更改代码中的所有行)
git blame filename -L 0,10
(负责从“0”行更改为“10”行的提交)
责备还有许多其他选择,但通常这些可能会有所帮助。
该git blame
命令用于逐行检查文件的内容,并查看每行最后一次修改的时间以及修改的作者是谁。
如果代码中存在错误,请使用它来识别是谁编写的,然后你可以责怪他。Git 责备是得到责备(d)。
如果您需要了解一行代码的历史,请使用git log -S"code here"
,比 git blame 更简单。
该git blame
命令使用上次修改该行的修订版的信息来注释行,并且......使用 Git 2.22(2019 年第二季度),由于围绕“ git blame
”的性能修复,特别是在线性历史中(这是我们应该优化的规范)。
请参阅David Kastrup ( ) 的提交 f892014(2019 年 4 月 2 日)。
(由Junio C Hamano 合并 -- --在4d8c4da 提交中,2019 年 4 月 25 日)fedelibre
gitster
blame.c
: 不要急切地丢弃原始 blob当父 blob 已经有块排队等待归咎时,在一个归咎步骤结束时删除 blob 将导致它立即重新加载,从而在处理线性历史时将 I/O 量和解包量加倍。
将此类父 blob 保留在内存中似乎是一种合理的优化,主要在处理来自旧分支的合并时会产生额外的内存压力。