自 2019 年 6 月起,使用内置--show-current
标志
虽然 2013 年的这个答案经受住了时间的考验,但 Git 在 2019 年学习了一个新的 git-branch 标志,这使得这变得更加容易。在提交3710f60a80中,git-branch 学习了一个新标志来显示当前分支,而无需用户自己解析分支列表或引用。您可以像这样调用它:
$ git branch --show-current
main
下面的其他方法继续有效,但这现在应该是 Git 版本 >= v2.22.0 的首选解决方案。
阅读 HEAD 的符号引用
有多种方法可以获取当前分支的名称。最规范的是使用git-symbolic-ref(1)读取 HEAD 的符号引用。例如,假设您在master分支上:
$ git symbolic-ref HEAD | sed 's!refs\/heads\/!!'
master
使用参考
无论您如何解析它,您都可以通过调用 shell 的命令替换在另一个命令中使用符号名称。例如,在 Bash 中:
$ git log -n1 $(git rev-parse --abbrev-ref HEAD)
如果您愿意,没有理由不能将这个技巧与 push 或其他命令一起使用。
Push.Default
如果您只对将当前分支推送到具有相同名称的远程分支感兴趣,并且由于其他原因不解析 refs,那么您最好使用此处和此处描述的 Git 的push.default选项。例如:
git config push.default current