如果分离,则获取当前的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
获取当前分支;但如果分离得到哈希值。