从 git-blame 中删除文件名和时间戳

Remove filename and timestamp from git-blame

长文件路径和不需要的时间戳让我很难阅读 git blame 的输出。我想从输出中删除这些列,但保留 SHA、行号和作者姓名。

我在 the docs 中看到 -f--show-filename 标记 包含 文件名(即使它默认包含),但是似乎没有 删除 文件名的标志。我经常在单个文件上使用 git blame,所以我已经知道我在看哪个文件。

我还看到一个用于抑制作者姓名和时间戳的标志 (-s),但我更愿意保留作者姓名,因此该标志无法满足我的需要。

我什至尝试将 -s 标志与 -e 标志结合使用(使用作者的电子邮件而不是他们的名字),但是这个技巧无法为作者输出任何内容。

有什么想法吗?

如果没有这个选项,可以使用sed:

git blame --date=short <filename> | sed -e 's, [^(]*, ,' -e 's, [^ ]*\( *[0-9]*)\), ,'

如果文件名中有括号,则第一个正则表达式需要稍作调整。 (希望你不要)即使没有文件名它也能正常工作。