如何获取Git中当前分支的名称?


当前回答

我有一个名为gitcbr(当前分支)的简单脚本,它打印出当前分支的名称。

#!/bin/bash

git branch | grep -e "^*"

我将此脚本放在一个自定义文件夹(~/.bin)中。该文件夹位于$PATH中。

所以现在,当我在git repo中时,我只需键入git cbr即可打印出当前的分行名称。

$ git cbr
* master

这是因为git命令接受其第一个参数,并尝试运行名为git-arg1的脚本。例如,gitbranch尝试运行名为gitbranch等的脚本。

其他回答

很抱歉,这是另一个命令行答案,但当我发现这个问题时,我正在寻找这个答案,其中许多答案都很有用。我的解决方案是以下bashshell函数:

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参数的东西。

在本地分支上:feature/HS-0001在标记的提交(分离)上:v3.29.5在远程分支上(已分离,未标记):SHA1在任何其他分离的提交上:SHA1

要使用git获取当前分支,

git branch --show-current

随着时间的推移,我们可能会有一长串分支。

虽然其他一些解决方案很好,但以下是我所做的(从雅各布的回答中简化):

git branch | grep \*

Now,

git status

有效,但仅当有任何本地更改时

git status 

还将给出分支名称以及更改。

e.g.

>git status
On branch master // <-- branch name here
.....

只需在~/.bash_profile中添加以下行:

branch_show() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(branch_show)\[\033[00m\] $ "

这样,您可以在Terminal中拥有当前分支名称

由Coderwall.com提供