获取当前分支名称以在git命令中使用

Dty*_*Dty 17 git

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

git push origin feature/really-long-branch-name
Run Code Online (Sandbox Code Playgroud)

是否有一个git命令只给出分支名称,所以我可以做如下的事情?

git push origin current_branch
Run Code Online (Sandbox Code Playgroud)

git rev-parse --abbrev-ref HEAD,但是那是在这种情况下,究竟是有用的.由于分支名称经常更改,因此设置默认分支也没有用.改变默认行为git push不是我正在寻找的,因为它仍然意味着我第一次输入完整的分支名称push.

编辑:

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

Tod*_*obs 15

阅读HEAD的符号参考

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

$ git symbolic-ref HEAD | sed 's!refs\/heads\/!!'
master
Run Code Online (Sandbox Code Playgroud)

使用参考

但是,您解析它,您可以通过调用shell的命令替换在另一个命令中使用符号名称.例如,在Bash中:

$ git log -n1 $(git rev-parse --abbrev-ref HEAD)
Run Code Online (Sandbox Code Playgroud)

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

Push.Default

如果您只想将当前分支推送到具有相同名称的远程分支,并且由于某些其他原因而未解析引用,那么您最好使用此处此处所述的Git的push.default选项.例如:

git config push.default current
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答.但是`git rev-parse --abbrev-ref HEAD`似乎更直接. (7认同)