Mad*_*ark 3 git shell command-prompt
我试图在显示当前分支名称时重现 shell 提示符的行为。我在这里使用鱼,但大多数贝壳都有这个功能。

如果我使用命令
git rev-parse --abbrev-ref --verify HEAD
Run Code Online (Sandbox Code Playgroud)
它返回我
掌握
好的!
如果我再次运行上面的命令,它会返回
头
这不是我想要的。我想要3171f5a就像提示一样。所以我得到了一个新命令。
git rev-parse --short --verify HEAD
Run Code Online (Sandbox Code Playgroud)
3171f5a
好的!但如果我回来掌握它会给我
617ca76
你知道是否有一个命令可以立即给我输出,而不用if语句检查返回值是否为HEAD. (是否缩短哈希值都可以)
非常感谢
在 shell 中执行此操作的一行方法是使用两个单独的 Git 命令:
git symbolic-ref --short -q HEAD || git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)
在分离 HEAD 的情况下,git symbolic-ref命令失败(同时-q防止它向 stderr 抱怨),第二个git rev-parse命令继续打印缩短的哈希 ID。
请注意,当您位于未出生的分支上时,该git symbolic-ref命令会成功,并且您将获得未出生的分支的(缩写)名称。