3

git blame命令显示的提交哈希缩写为比其他命令长一个字符的长度。例如:

$ git log --oneline       
9fb6f706 (HEAD -> master) second commit
0af747a8 first commit
$ git blame foo   
9fb6f7064 (gilles 2020-11-15 12:28:09 +0100 1) revised
^0af747a8 (gilles 2020-11-15 12:27:41 +0100 2) world

我经常从输出中复制粘贴一个缩写哈希,blame并在日志或交互式 rebase 的提交集中搜索它。但是因为缩写在git blame输出中长了一个字符,所以我要记得删除最后一个字符,否则搜索什么都找不到。

对于脚本,我会使用未缩写的哈希和瓷器格式。但是对于交互式使用,我想使用缩写哈希。

设置core.abbrev选项没有帮助:git blame添加一个。使用一个更少的值设置core.abbrev和调用blame --abbrev,但这不是一个好的解决方案,因为我失去了 git 的启发式方法来确定短提交 id 的合适长度,我必须显式传递此选项或使用不同的命令名称作为别名。

我怎样才能使一个简单git blame的使用与其他 git 命令相同的缩写提交 ID 的长度?

4

1 回答 1

1

感谢您挖掘源代码。恐怕您唯一的解决方案是定义自定义别名。

git config --global alias.blame2 '!git -c core.abbrev=6 blame'
于 2020-11-16T17:31:55.353 回答