首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取要在git命令中使用的当前分支名称

获取要在git命令中使用的当前分支名称
EN

Stack Overflow用户
提问于 2013-10-12 13:57:29
回答 2查看 11.8K关注 0票数 22

有时我想在git命令中使用当前的分支名称。例如

代码语言:javascript
复制
git push origin feature/really-long-branch-name

有没有一个只给出分支名称的git命令,这样我就可以像下面这样做了?

代码语言:javascript
复制
git push origin current_branch

git rev-parse --abbrev-ref HEAD,但它在本例中非常有用。设置默认分支也没有什么帮助,因为分支名称经常更改。更改git push的默认行为也不是我想要的,因为这仍然意味着我必须在第一次push时输入完整的分支名称。

编辑:

版主,这个问题不是骗人的,所以请不要因为这个原因而关闭。请仔细阅读我问题的粗体部分。

EN

回答 2

Stack Overflow用户

发布于 2013-10-14 08:18:40

自2019年6月起,使用内置--show-current标志

虽然这个2013年的答案经受住了时间的考验,但Git在2019年学到了一个新的git-branch标志,使这一点变得更容易。在提交分支中,git- 3710f60a80学习了一个新的标志来显示当前分支,而不需要用户自己解析分支列表或引用。您可以这样调用它:

代码语言:javascript
复制
$ git branch --show-current
main

下面的其他方法继续有效,但现在这应该是Git release versions >= v2.22.0的首选解决方案。

读取HEAD的符号引用

有许多方法可以获取当前分支的名称。最规范的是使用git-symbolic-ref(1)读取HEAD的符号引用。例如,假设您在主分支上:

代码语言:javascript
复制
$ git symbolic-ref HEAD | sed 's!refs\/heads\/!!'
master

使用Ref

无论您如何解析它,都可以通过调用shell的command substitution在另一个命令中使用该符号名称。例如,在Bash中:

代码语言:javascript
复制
$ git log -n1 $(git rev-parse --abbrev-ref HEAD)

如果你选择的话,你没有理由不能在push或其他命令中使用这个技巧。

Push.Default

如果您只对将当前分支推送到具有相同名称的远程分支感兴趣,并且出于其他原因而不解析ref,那么您最好使用描述为herehere的Git的push.default选项。例如:

代码语言:javascript
复制
git config push.default current
票数 20
EN

Stack Overflow用户

发布于 2017-11-03 20:22:48

使用HEAD

在git push的情况下,你可以使用HEAD。

documentation状态

git推送源头

一种在遥控器上将当前分支推送到相同名称的便捷方法。

创建别名

对于不能使用HEAD的情况,我会为它创建一个别名。我只熟悉mac环境,这个解决方案适用于该平台,但我相信在Windows上也有同样的方法。

在~/..bash_profile中创建此别名

代码语言:javascript
复制
alias current_branch="git rev-parse --abbrev-ref HEAD"

然后,您可以通过执行以下命令在git命令中使用它

代码语言:javascript
复制
git push origin `current_branch`
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19331073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档