git status
还将给出分支名称以及更改。
例如
>git status On branch master // <-- branch name here .....
如果你真的想要在分离的HEAD状态下检出最后一个分支/标签。
git reflog HEAD | grep 'checkout:' | head -1 | rev | cut -d' ' -f1 | rev
的 更新 强> 如果你有并且不害怕awk,那就更好了。
git reflog HEAD | grep 'checkout:' | head -1 | awk '{print $NF}'
git branch
应该显示您的回购的所有本地分支。已加星标的分支是您当前的分支。
如果您只想检索所在分支的名称,您可以执行以下操作:
git branch | grep \* | cut -d ' ' -f2
git status的嘈杂版本可以解决这个问题
git status -bsuno
打印出来
## branch-name
git branch | grep "*" | sed "s/* //" | awk '{printf $0}' | pbcopy
直接将结果复制到粘贴板。感谢@ olivier-refalo的开始
随着时间的推移,我们可能会有很长的分支列表。
虽然其他一些解决方案很棒,但这就是我所做的(简要来自雅各布的回答):
git branch | grep \*
现在,
有效,但是 只要 如果有任何本地更改
git branch | grep -e "^*" | cut -d' ' -f 2
将仅显示分支名称
添加到 PS1 使用Mac:
PS1
PS1='\W@\u >`[ -d .git ] && git branch | grep ^*|cut -d" " -f2`> $ '
在运行上面的命令之前:
运行该命令后:
别担心,如果它不是GIT存储库,它不会因为显示错误 [-d .git] 检查是否 .git 文件夹是否存在。
[-d .git]
.git
要显示您当前所在的分支,而未列出其他分支,您可以执行以下操作:
git rev-parse --abbrev-ref HEAD
参考:
我知道这已经晚了但是在linux / mac上,从终端你可以使用以下内容。
git status | sed -n 1p
说明:
git status - &gt;获取工作树状态 sed -n 1p - &gt;获取状态正文的第一行
对上述命令的响应如下:
"On branch your_branch_name"
为了我自己的参考(但它可能对其他人有用)我概述了这个线程中提到的大多数(基本命令行)技术,每个技术都应用于几个用例:HEAD是(指向):
结果:
git branch | sed -n '/\* /s///p'
master
(detached from origin/master)
(detached from origin/feature-foo)
(detached from v1.2.3)
(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
git describe --all
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
HEAD
git symbolic-ref --short HEAD
fatal: ref HEAD is not a symbolic ref
(仅供参考,这是使用git版本1.8.3.1完成的)
git branch 仅显示当前分支名称。
虽然git branch会显示所有分支并用星号突出显示当前分支,但在处理大量分支时它可能过于繁琐。
要仅显示您当前所在的分支,请使用:
你也可以使用GIT_BRANCH变量,如下所示: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
git插件设置了几个可以在脚本中使用的环境变量:
GIT_COMMIT - 当前的SHA
GIT_BRANCH - 当前正在使用的分支的名称,例如“master”或“origin / foo”
GIT_PREVIOUS_COMMIT - 来自同一分支的先前构建的提交的SHA(分支中第一个构建的当前SHA)
GIT_URL - 存储库远程URL
GIT_URL_N - 存在多个远程URL时的存储库远程URL,例如GIT_URL_1,GIT_URL_2
GIT_AUTHOR_EMAIL - 提交者/作者电子邮件
GIT_COMMITTER_EMAIL - 提交者/作者电子邮件
你可以在工作目录上使用git bash 命令如下
git status -b
它会告诉你你在哪个分支 有许多命令是有用的,其中一些是有用的
-s
- 短 以短格式输出。
-b - 科 即使是短格式显示分支和跟踪信息。
- 陶瓷[=] 以易于解析的格式为脚本提供输出。这类似于短输出,但在Git版本中保持稳定,无论用户配置如何。请参阅下文了解详情。
version参数用于指定格式版本。这是可选的,默认为原始版本v1格式。
- 长 以长格式输出。这是默认值。
-v --verbose 除了已更改的文件的名称之外,还显示要提交的文本更改(即,类似于git diff --cached的输出)。如果指定了-v两次,那么还会显示工作树中尚未暂存的更改(即,与git diff的输出一样)。
在分离的头上时返回分支名称或SHA1:
git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD
这是@ dmaestro12的答案的简短版本,没有标签支持。
对不起,这是另一个命令行答案,但是当我发现这个问题并且其中许多答案都有帮助时,这就是我所寻找的。我的解决方案是以下bash shell函数:
get_branch () { git rev-parse --abbrev-ref HEAD | grep -v HEAD || \ git describe --exact-match HEAD 2> /dev/null || \ git rev-parse HEAD }
这应该总是给我一些人类可读和可直接用作参数的东西 git checkout 。
git checkout
feature/HS-0001
v3.29.5
我有一个简单的脚本叫 git-cbr ( 目前的分支 )打印出当前分支名称。
git-cbr
#!/bin/bash git branch | grep -e "^*"
我把这个脚本放在一个自定义文件夹中( ~/.bin )。该文件夹在 $PATH 。
~/.bin
$PATH
所以现在当我在git仓库中时,我只需输入 git cbr 打印出当前分支名称。
git cbr
$ git cbr * master
这是因为 git command获取其第一个参数并尝试运行名称为的脚本 git-arg1 。例如, git branch 尝试运行一个名为的脚本 git-branch 等
git
git-arg1
git-branch
您只需在Linux上的存储库目录中键入命令行(console):
$ git status
你会看到一些文字,其中有类似的东西:
... On branch master ...
这意味着你目前在 master 科。如果您当时正在编辑任何文件并且它位于同一本地存储库(包含Git版本控制管理下的文件的本地目录)中,那么您正在编辑此分支中的文件。
找到一个长度相同的命令行解决方案 Oliver Refalo的 ,使用好的'awk:
git branch | awk '/^\*/{print $2}'
awk 读作“做的东西” {} 在匹配正则表达式的行上。默认情况下,它假定以空格分隔的字段,因此您打印第二个字段。如果您可以假设只有您的分支的行具有*,则可以删除^。啊,bash高尔夫!
awk
{}
#!/bin/bash function git.branch { br=`git branch | grep "*"` echo ${br/* /} } git.branch
还有一个选择:
git name-rev --name-only HEAD
git symbolic-ref -q --short HEAD
我在需要当前分支名称的脚本中使用它。它将显示当前对HEAD的简短符号引用,它将是您当前的分支名称。
那这个呢?
{ git symbolic-ref HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null } | sed "s#refs/heads/##"
在Netbeans中,确保启用版本控制注释(查看 - &gt;显示版本控制 标签)。然后,您可以在项目名称旁边看到分支名称。
http://netbeans.org/bugzilla/show_bug.cgi?id=213582