git责备什么'做什么?

我看到了很多关于使用git blame的方法的问题,但我真的不理解它们。

我在GitHub界面上的文件顶部看到一个按钮。点击它后,它会在左侧栏上显示与用户名的一些差异。这说明了什么?

为什么git blame实际上被使用,除了GitHub?

298161 次浏览

从GitHub:

blame命令是Git的一个特性,旨在帮助您确定谁是谁

.

.

. 尽管它的名字听起来很消极,但git blame实际上很漂亮 无害的;它的主要功能是指出谁改变了什么 文件中的行,以及原因。它可以是识别变化的有用工具

基本上,git-blame用于显示最后修改文件每行的修订版本和作者。这就像检查一个文件的开发历史。

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中最后一次提交之前,谁是最后一个更改文档中的一行的人。< / p >

也就是说,为了查看文档行的完整历史记录/日志,你需要为你的git log中的每次提交运行git blame path/to/file

它是为了找出哪个同事写了特定的行或破坏了项目,所以你可以他们:)

git blame命令用于了解谁/哪个提交负责对文件的最新更改。每一行的作者/提交也可以看到。

git blame filename(提交负责更改代码中的所有行)

git blame filename -L 0,10(提交负责从“0”行更改为“10”行)

还有很多其他的指责方式,但总的来说,这些都有帮助。

git blame命令用上次修改该行的修订版本中的信息注释该行,并且…在Git 2.22(2019年第二季度)中,将这样做,因为围绕&;__abc0 &;的性能修复,特别是在线性历史中(这是我们应该优化的规范)。

参见提交f892014 (02 Apr 2019) by David Kastrup (fedelibre)(由Junio C Hamano—gitster提交4 d8c4da中合并,25 Apr 2019)

blame.c:不要急于删除原点斑点

当父blob已经有块排队等待责备时,在一个责备步骤结束时丢弃blob将导致它立即被重新加载,使I/O数量增加一倍,并在处理线性历史记录时解包。

在内存中保留这样的父blob似乎是一种合理的优化,但在处理来自旧分支的合并时,主要会产生额外的内存压力。

git blame命令用于逐行检查文件的内容,查看每一行最后修改的时间以及修改的作者是谁。

如果代码中有bug,用它来确定是谁发现了它,然后你就可以责怪他了。不被指责就是被指责(d)。

如果你需要知道一行代码的历史,使用git log -S"code here"。这比指责懦夫简单多了。

git log vs git blame