git branch
应该显示您的存储库的所有本地分支。带星号的分支是您当前的分支。
要仅检索您所在分支的名称:
shellgit rev-parse --abbrev-ref HEAD
2.22 版本添加了“打印当前分支的名称”--show-current
选项。该组合也适用于第一次提交之前新初始化的存储库:
shellgit branch --show-current
git branch
应该显示您的存储库的所有本地分支。带星号的分支是您当前的分支。
要仅检索您所在分支的名称:
shellgit rev-parse --abbrev-ref HEAD
2.22 版本添加了“打印当前分支的名称”--show-current
选项。该组合也适用于第一次提交之前新初始化的存储库:
shellgit branch --show-current
您还可以git symbolic-ref HEAD
显示完整的参考规范。
仅显示 Git v1.8 及更高版本中的分支名称(感谢 Greg 指出这一点):
shellgit symbolic-ref --short HEAD
在 Git v1.7+ 上您还可以执行以下操作:
shellgit rev-parse --abbrev-ref HEAD
如果您在一个分支上,则两者应该给出相同的分支名称。如果你有超然的头脑,答案就会有所不同。
笔记:
在早期的客户端上,这似乎有效:
shellgit symbolic-ref HEAD | sed -e "s/^refs\/heads\///"
– 达里恩 2014 年 3 月 26 日
为了我自己的参考(但可能对其他人有用),我概述了该线程中提到的大多数(基本命令行)技术,每个技术都应用于多个用例: HEAD 是(指向):
结果:
git branch | sed -n '/\* /s///p'
master
(detached from origin/master)
(detached from origin/feature-foo)
(detached from v1.2.3)
(HEAD detached at 285f294)
(detached from 285f294)
git status | head -1
# On branch master
# HEAD detached at origin/master
# HEAD detached at origin/feature-foo
# HEAD detached at v1.2.3
# HEAD detached at 285f294
# HEAD detached at 285f294
git describe --all
heads/master
heads/master
注意:不是 remotes/origin/master
)remotes/origin/feature-foo
v1.2.3
remotes/origin/HEAD
v1.0.6-5-g2393761
cat .git/HEAD
:
ref: refs/heads/master
cat: .git/HEAD: Not a directory
git rev-parse --abbrev-ref HEAD
master
HEAD
git symbolic-ref --short HEAD
master
fatal: ref HEAD is not a symbolic ref
(仅供参考,这是使用 git 版本 1.8.3.1 完成的)
从 git 2.22 版本开始,你可以使用:
shellgit branch --show-current
根据手册页:
打印当前分支的名称。在分离头状态下,不打印任何内容。
在 Git 中,有几种方法可以获取当前分支的名称,这里将介绍两种常用的方法:
git branch
命令运行 git branch
命令时,它会列出仓库中的所有分支。当前分支会以一个星号 (*) 标记显示在列表中。例如:
bash$ git branch main * develop feature-xyz
在这个例子中,当前分支是 develop
。
git rev-parse
命令如果需要在脚本中使用或者想要直接获取当前分支的名称,可以使用 git rev-parse
命令。这种方式会直接输出当前分支的名称,而不会显示其他分支信息。命令如下:
bash$ git rev-parse --abbrev-ref HEAD
这条命令会输出当前分支的名称。例如,如果当前分支是 develop
,则输出会是:
shelldevelop
这个方法很适合自动化脚本中,因为它直接返回当前分支的名称,而不包含其他额外信息。
假设我在一个软件开发项目中工作,项目采用 Git 进行版本控制。我需要确保我正在 feature-new-ui
分支上开发新的用户界面功能。为了验证我当前的工作环境,我可以使用以下命令:
bash$ git rev-parse --abbrev-ref HEAD
如果返回的分支名称是 feature-new-ui
,那么我可以安心地继续我的开发任务;如果不是,我需要切换到正确的分支上。
这样的命令使用可以有效避免在错误的分支上进行开发,减少将来可能出现的合并冲突或错误。