编程基础:Git blame

458 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情

你是否曾在你的代码中发现过导致错误的行更改,并且想知道是谁更改了该行?幸运的是,git 有一个命令!git blame让你选择一个文件并显示谁最后更改了每一行。如果你想知道,之所以调用它是git blame因为它可以让你为正在调查的代码破坏行分配责任。

要找出谁更改了一行,只需在myfile.txt要检查的文件所在的位置运行以下命令:

git blame myfile.txt

如果您对 的格式感兴趣git blame,它会像这样分解:

^665221a (2022-11-30 14:18:05 +0101 10) import { v4 as uuid } from 'uuid'; ^ ^ ^ | | | Commit ID | Line number | Author and timestamp

在特定行上使用 Git Blame

这真的很有用,但是如果你想在特定的线路上磨练,你可以使用这个-L选项。例如,如果您想查看第 1 行和第 5 行之间的更改历史记录,您可以执行以下操作:

git blame index.js -L 1,5

或者,如果您想查找第 20 行和第 40 行之间的更改历史记录,您可以执行以下操作:

git blame index.js -L 20,40

其他有用的 Git Blame 选项

git blame您可能还想使用许多其他有用的选项。以下是我最常用的一些,以及它们的作用。

使用 git blame 显示作者的电子邮件

要仅显示作者的电子邮件地址,您只需使用以下-e选项:

git blame index.js -e

产生这样的输出:

^665221a (<xxx@email.com> 2022-11-30 15:18:23 +0101 8) import { fileURLToPath } from 'url'

使用 git blame 忽略 whitepsace

git blame如果您的代码包含很多空格,您也可以忽略空格。为此,您可以使用以下-w选项:

git blame index.js -w

使用 git blame 用颜色格式化线条

默认情况下,git blame生成一堵白色或黑色文本墙。如果你想通过颜色区分不同的提交和更改,你可以使用--color-linesor --color-by-age:

  • --color-lines如果之前的行是不同的提交,则为行着色。
  • --color-by-age根据他们的年龄给线条上色。

使用 git blame 显示文件名

要使用 显示文件名git blame,请使用该-f选项。这将显示文件名和提交 ID。

git blame index.js -f

将产生这样的输出:

^665221a index.js (xxx 2022-11-30 15:28:50 +0100 16) import dotenv from 'dotenv'

使用 git blame 自下而上(反向)显示行变化

您还可以使用 反向显示线条变化git blame,这意味着从底部开始,然后向上。只需将--reverse选项添加到您的命令:

git blame index.js --reverse