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'命令的输出中复制一个缩写的散列值,并在日志或交互式重新排序的提交集中搜索它。但因为在'git blame'输出中,这个缩写多了一个字符,所以我必须记住删除最后一个字符,否则搜索找不到任何东西。
对于脚本编写,我会使用完整的哈希值和精美的格式。但是对于交互使用,我想使用缩写的哈希值。
设置 'core.abbrev' 选项没有帮助:'git blame' 会将其加1。设置 'core.abbrev' 并使用比它小一的值调用 'blame --abbrev' 可以解决问题,但这不是一个好的解决方案,因为我失去了 git 确定短提交 ID 的良好长度的启发式方法的好处,而且我必须显式地传递此选项或使用不同的命令名称作为别名。
如何使普通的 'git blame' 命令使用与其他 git 命令相同的缩写提交 ID 长度?