Git - push current branch shortcut
是否有快捷方式告诉Git将当前跟踪分支推到原点?
注意:我知道我可以更改默认的推送行为,但我正在寻找不更改默认行为的特别解决方案。
例如,假设我在
1 | git push origin feature/123-sandbox-tests |
这很乏味。我在找一条捷径,比如
1 | git push origin current |
号
其中git知道电流是
编辑:从2.0版开始,Git的默认行为已经变为更直观的行为,这是我想要实现的。详见本问题。
编辑2:Ceztko的答案是最好的答案,因为它允许推动当前分支,而不管设置如何。
根据
1 2 | git push origin HEAD A handy way to push the current branch to the same name on the remote. |
。
所以我认为你需要的是
您可以使用以下命令将git配置为推送到当前分支
1 | git config --global push.default current |
。
那就这么做吧
1 | git push |
。
这将把代码推送到当前的分支。
在没有指定分支的情况下,"git push"的默认行为中,您应该看看类似的问题。
基本上,它解释了如何设置默认行为来推动当前执行
埃多克斯1〔14〕
其他选项:
- 没什么:不要推任何东西
- 匹配:推送所有匹配的分支
- 上游/跟踪:将当前分支推到正在跟踪的任何分支
- 当前:推当前分支
如果您使用的是git 1.7.x,那么可以运行以下命令来设置远程跟踪分支。
1 | git branch --set-upstream feature/123-sandbox-tests origin/feature/123-sandbox-tests |
然后您可以简单地使用
如果只想使用push命令推送当前分支,那么可以将push行为更改为upstream:
1 | git config --global push.default upstream |
号
我在.bashrc配置中使用了这样的别名
1 | alias gpb='git push origin `git rev-parse --abbrev-ref HEAD`' |
在命令
以下是我的其他别名:
1 2 3 4 | alias gst='git status' alias gbr='git branch' alias gca='git commit -am' alias gco='git checkout' |
。
就其价值而言,终极捷径:
在我的
最简单的方法是:运行一次
您也可以在配置中通过将
最后,确保考虑
这些设置的详细信息可以在Git配置手册页中找到。
再想一想,再读一遍你的问题,我想你知道这一切。我觉得你真正想要的东西不存在。bash的功能如何,比如(未测试的):
1 2 3 4 5 | function pushCurrent { git config push.default upstream git push git config push.default matching } |
在Ceztko的回答的帮助下,我编写了这个小助手函数,使我的生活更轻松:
1 2 3 4 5 6 7 8 | function gpu() { if git rev-parse --abbrev-ref --symbolic-full-name @{u} > /dev/null 2>&1; then git push origin HEAD else git push -u origin HEAD fi } |
它将当前分支推送到原点,如果尚未设置远程跟踪分支,也会设置远程跟踪分支。