我想在显示当前分支名称时重现shell提示符的行为。 我在这里使用鱼,但大多数外壳都有这个功能。
如果我使用命令
git rev-parse --abbrev-ref --verify HEAD
它让我回头
主
好!
如果我再次运行上面的命令,则返回
HEAD
这不是我想要的。我希望3171f5a
就像提示一样。所以我得到了一个新命令。
git rev-parse --short --verify HEAD
3171f5a
尼斯!但如果我回到主人那就给我了
617ca76
您是否知道是否有命令直接向我提供输出,而没有if
语句检查返回值是否为HEAD
。
(缩短哈希是否正常)
非常感谢
答案 0 :(得分:1)
在shell中执行此操作的单行方法是使用两个单独的Git命令:
Assert.Fail("Something is foo.{0}", message?.Prepend(" "));
在分离的HEAD情况下,git symbolic-ref --short -q HEAD || git rev-parse --short HEAD
命令失败(git symbolic-ref
阻止它向stderr抱怨),第二个-q
命令继续打印缩短的哈希ID。
请注意,当您在未出生的分支上时,git rev-parse
命令会成功,您将获得未出生分支的(缩短)名称。
答案 1 :(得分:0)
git提示逻辑通常包含在函数中的原因是它不像单个git命令那么简单。你可以接近像
这样的东西git log -n 1 --format="%D>%h" |cut -d'>' -f2
但是看着这个我不禁认为它有点脆弱(你可能会得到一些不需要的空白区域)。
不使用if
(或等效的东西)的约束在这里可能不完全切合实际。