如何获取Git中当前分支的名称?
当前回答
您可以使用一条grep指令来完成此操作,使用Perl模式和\K来重置匹配缓冲区,因此您只能获得分支名称。
$ git branch | grep -oP "^\*\s+\K\S+$"
master
其他回答
为什么不使用git-aware shell提示符,它会告诉您当前分支的名称?git状态也有帮助。
如何从contrib/执行git-prompt.sh(git版本2.3.0),如__git_ps1 helper函数中所定义:
首先,如果检测到正在进行的重基,则存在特殊情况。Git在rebase过程中使用未命名的分支(分离的HEAD)使其成为原子分支,原始分支保存在其他地方。如果.git/HEAD文件是一个符号链接(从git的古代历史来看,这种情况非常罕见),那么它将使用git符号ref HEAD 2>/dev/null否则,它将读取.git/HEAD文件。下一步取决于其内容:如果此文件不存在,则当前没有分支。如果存储库是空的,通常会发生这种情况。如果它以“ref:”前缀开头,那么.git/HEAD是symref(符号引用),并且我们处于正常分支。去掉前缀以获得全名,去掉refs/heads/以获得当前分支的短名称:b=“${head#ref:}”# ...b=${b#refs/heads/}如果它不是以“ref:”开头,那么它是分离的HEAD(匿名分支),直接指向某个提交。使用git描述。。。以人类可读的形式编写当前提交。
我希望这有帮助。
可以在工作目录中使用gitbash命令如下
git status -b
它会告诉你你在哪个分支机构有许多有用的命令
-s
--短路,短路以短格式输出。
-b级--分支,分支以短格式显示分支和跟踪信息。
--瓷器[=]为脚本提供易于解析的输出格式。这与短输出类似,但无论用户配置如何,在Git版本中都会保持稳定。详见下文。
version参数用于指定格式版本。这是可选的,默认为原始版本v1格式。
--长的,长的以长格式给出输出。这是默认设置。
-五--冗长的,冗长的除了已更改的文件名之外,还显示要提交的文本更改(例如,像gitdiff-cached的输出)。如果两次指定了-v,那么还将显示工作树中尚未暂存的更改(例如,像gitdiff的输出)。
从git的2.22版本开始,您可以使用:
git branch --show-current
根据手册页:
打印当前分支的名称。在分离HEAD状态下,不打印任何内容。
一个简单的黑客可以
git branch|grep "*"
输出:
* <current branch>
编辑:
了解当前分支的另一种方法
git status|head -1
On branch <current branch name>
随着时间的推移,我们可能会有一长串分支。
虽然其他一些解决方案很好,但以下是我所做的(从雅各布的回答中简化):
git branch | grep \*
Now,
git status
有效,但仅当有任何本地更改时