首页 > 解决方案 > 获取当前 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

解决方案


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

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

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


推荐阅读