引用使用 `:/` 语法指定的提交之前的提交?

Referring to the commit prior to a commit specified using `:/` syntax?

提交消息包含 "foo" 的最新提交拼写为 :/foo,如:

git show :/foo

如何引用该提交的父项? :/foo^ 不正确;结果是:

fatal: ambiguous argument ':/foo^': unknown revision or path not in the working tree.

到目前为止我唯一能想到的就是使用 git rev-parse:

的输出
git show $(git rev-parse :/foo)^

...这有效,但似乎不必要地复杂。

如果 :/foo 找到 HEAD:^{/foo},您可以将尾部 ^ 作为 HEAD:^{/foo}^ 放入第二个语法中。如果它找到 xyz:^{/foo},您可以用这种方式放置结尾的 ^。但由于它可能会找到其中任何一个或其他类似的字符串,因此没有您想要的单步语法。

两步语法是各种 Git 脚本中实际使用的语法,尽管通常它被编码为:

hash=$(git rev-parse "$usersupplied") || exit
hash=$(git rev-parse $hash^) || exit

以便更好地处理错误。