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


当前回答

很抱歉,这是另一个命令行答案,但当我发现这个问题时,我正在寻找这个答案,其中许多答案都很有用。我的解决方案是以下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 branch | grep -e "^*" | cut -d' ' -f 2

将仅显示分支名称

git状态的噪音较小的版本会起作用

git status -bsuno

它打印出来

## branch-name

我知道这已经得到了回答,但在最新版本的Git中,命令gitbranch会以某种提示打开分支列表,您必须退出。这让我烦死了!

这是我的解决方案:打开bash配置文件并键入:

#!/bin/bash
git() {
  if [[ $@ == "branch" ]] then
    command git branch -a | grep -v 'remotes'
  else
    command git "$@"
  fi
}

现在打开终端,在git repo中键入以下命令进行测试:

source ~/.zshrc
git branch 

瞧!您的本地分支机构列表将在您的终端中打印出来。

编写到bashrc文件的代码将覆盖gitbranch的默认函数,并用一个更长的命令替换它,该命令通过-a参数列出所有本地分支。然后我们把多余的不需要的业务打印出来。如果排除grep命令,仍然会得到令人讨厌的提示。如果您不熟悉编写bash命令,请检查以下解释:关于.bash_profile、.bashrc,以及别名应该写在哪里?

我会尝试以下方法之一:

1.>git符号ref--短HEAD

git symbolic-ref --short HEAD
>>> sid-dev

2.>git分支--显示当前

git branch --show-current
>>> sid-dev

3.>git name rev–仅名称HEAD

git name-rev –name-only HEAD
>>> HEAD sid-dev

笔记:

1.>git symbol ref--short HEAD显示当前分支HEAD的简短符号引用。这是当前分支名称。

2.>gitbranch--showcurrent也是打印当前分支名称的一种简单有效的方法。

3.>git name rev–name only HEAD为当前分支的HEAD版本提供符号名称

4.>在上面的示例中,sid-dev是我的分支的名称。

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

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

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

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