如果分离,则获取当前的Git分支名称或提交哈希

是否有一个命令可以打印当前分支(例如master)(如果有),或者如果它被分离则打印提交哈希?目的是给我一些可以写下来的东西,以便我以后可以执行git switch <branch_or_commit>以回到我开始的地方。

这将以编程方式使用,因此无需抓取git status、Bash 管道或其他任何内容。答案需要使用“管道”命令,这些命令可以保证其输出的格式和稳定性。

另外我应该指出,有很多问题要求每个人单独思考,但不是一起思考。在随意将其标记为重复之前,请三思。

这是我尝试过的事情。最接近的其实是cat .git/HEAD

命令 分支上的输出 分离时的输出
git rev-parse HEAD cedbe9... cedbe9...
git rev-parse --abbrev-ref HEAD master HEAD
git symbolic-ref --short HEAD master fatal: ref HEAD is not a symbolic ref
cat .git/HEAD ref: refs/heads/master cedbe9...
git branch --show-current master (无输出)
你的答案在这里 master cedbe9...

回答

仅使用一个命令是不可能的,但可以使用两个命令:

git symbolic-ref -q --short HEAD || git rev-parse HEAD

获取当前分支;但如果分离得到哈希值。


以上是如果分离,则获取当前的Git分支名称或提交哈希的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>