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


当前回答

#!/bin/bash
function git.branch {
  br=`git branch | grep "*"`
  echo ${br/* /}
}
git.branch

其他回答

在分离头上返回分支名称或SHA1:

git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD

这是@dmaestro12答案的简短版本,没有标记支持。

git branch | grep -e "^*" | cut -d' ' -f 2

将仅显示分支名称

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

#!/bin/bash

git branch | grep -e "^*"

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

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

$ git cbr
* master

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

git log

此命令将在顶部显示当前分支名称的提交列表。

如果您确实希望最后一个分支/标记也在分离的HEAD状态下检出。

git reflog HEAD | grep 'checkout:' | head -1 | rev | cut -d' ' -f1 | rev

使现代化如果你有而且不害怕awk,这会更好。

git reflog HEAD | grep 'checkout:' | head -1 | awk '{print $NF}'