只显示Git中的当前分支

时间:2009-09-13 15:10:32

标签: git branch git-branch

我尝试为此寻找一个特殊的git命令,但找不到一个。任何人都可以提出比以下更短或更快的建议:

git branch | awk '/\*/ { print $2; }'

12 个答案:

答案 0 :(得分:552)

$ git rev-parse --abbrev-ref HEAD
master

这适用于Git 1.6.3或更新版本。

答案 1 :(得分:106)

在Git 1.8.1中,你可以使用 git symbolic-ref 命令和“--short”选项:

$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop

答案 2 :(得分:25)

您可能对

的输出感兴趣
git symbolic-ref HEAD

特别是,根据您的需要和布局,您可能希望

basename $(git symbolic-ref HEAD)

git symbolic-ref HEAD | cut -d/ -f3-

然后再次出现.git/HEAD文件,您可能也会感兴趣。

答案 3 :(得分:12)

这是我刚刚偶然发现的旧帖子。据我所知,没有办法本地显示GIT中的当前分支,所以我一直在使用:

#> git branch | grep '*'

答案 4 :(得分:11)

使用Git 2.22(2019年第二季度),您将拥有一个更简单的方法:git branch --show-current

请参见commit 0ecb1fcDaniels Umanovskis (umanovskis)(2018年10月25日)。
(由Junio C Hamano -- gitster --commit 3710f60中合并,2019年3月7日)

  

branch:引入--show-current显示选项

     

--show-current调用时,git branch将打印当前   分支名称并终止。
  仅打印实际名称,不带refs/heads
  在分离的HEAD状态下,什么也不输出。

     

旨在用于脚本编写和交互式/信息性使用。
  与git branch --list不同,无需过滤即可获取   分支名称。

答案 5 :(得分:7)

我想这应该很快,可以与python API一起使用。

git branch --contains HEAD
* master

答案 6 :(得分:4)

我正在使用

/etc/bash_completion.d/git

它附带了git,并提供了分支名称和参数完成的提示。

答案 7 :(得分:2)

对于喜欢别名的人: 将以下内容添加到您的 .zshrc 中,以便您获得更轻松的 git 命令流程:

<块引用>

alias gpsu="git push --set-upstream origin $(git symbols-ref --short HEAD)"

答案 8 :(得分:1)

这不短,但它也处理分离的分支:

git branch | awk -v FS=' ' '/\*/{print $NF}' | sed 's|[()]||g'

答案 9 :(得分:0)

为了完整起见,至少在Linux上,echo $(__git_ps1)应该给您当前括号的名称。

这在某些情况下可能很有用,因为它不是git命令(取决于git),尤其是用于设置bash命令提示符以显示当前分支

例如:

/mnt/c/git/ConsoleApp1 (test-branch)>echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)>git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)>echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)>cd ..
/mnt/c/git>echo $(__git_ps1)

/mnt/c/git>

答案 10 :(得分:0)

某人可能会觉得这(git show-branch --current)很有帮助。当前分支显示有*标记。

host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
 * [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+  [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+  [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+  [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master

答案 11 :(得分:-1)

仅使用git branch对我有用。

Git版本:2.13.2