在显示当前分支名称时,我试图重现我的 shell 提示符的行为。 我在这里使用鱼,但大多数 shell 都有这个功能。
如果我使用命令
git rev-parse --abbrev-ref --verify HEAD
它返回我
master
好!
如果我再次运行上面的命令,它会返回
HEAD
这不是我想要的。我想要 3171f5a
就像提示一样。所以我有一个新命令。
git rev-parse --short --verify HEAD
3171f5a
不错!但如果我回来掌握它,它会给我
617ca76
你知道是否有一个命令可以立即给我输出,而无需 if
语句检查返回值是否为 HEAD
。
(缩短或不缩短散列都可以)
非常感谢
最佳答案
在 shell 中执行此操作的单行方法是使用两个单独的 Git 命令:
git symbolic-ref --short -q HEAD || git rev-parse --short HEAD
在分离的 HEAD 情况下,git symbolic-ref
命令失败(而 -q
阻止它向 stderr 提示)和第二个 git rev -parse
命令继续打印缩短的哈希 ID。
请注意,当您在未出生的分支上时,git symbolic-ref
命令会成功,您将获得未出生分支的(缩写)名称。
关于git - 显示 git 分支名称或提交 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47592077/