是否有快捷方式告诉Git将当前跟踪分支推送到原点?
注意:我知道我可以更改默认的推送行为,但我正在寻找一种不会改变默认行为的临时解决方案.
例如,假设我在feature/123-sandbox-tests
我将使用的分支上
git push origin feature/123-sandbox-tests
Run Code Online (Sandbox Code Playgroud)
这很乏味.我正在寻找一条捷径,比如说
git push origin current
Run Code Online (Sandbox Code Playgroud)
git知道当前是什么feature/123-sandbox-tests
.
编辑:从版本2.0开始,git的默认行为已更改为更直观的行为,这是我想要实现的.有关详细信息, 请参阅此SO问题
编辑2:ceztko的答案是最佳答案,因为它允许推送当前分支,无论设置如何.
cez*_*tko 616
根据git push
文件:
git push origin HEAD
A handy way to push the current branch to the same name on the remote.
Run Code Online (Sandbox Code Playgroud)
所以我认为你需要的是git push origin HEAD
.git push -u origin HEAD
如果尚未推送到原点,在本地分支中设置上游跟踪信息也很有用.
Mah*_*esh 164
您可以使用以下命令配置git以推送到当前分支
git config --global push.default current
Run Code Online (Sandbox Code Playgroud)
然后就做
git push
Run Code Online (Sandbox Code Playgroud)
这会将代码推送到您当前的分支.
小智 37
您应该在没有指定分支的"git push"的默认行为中查看类似的问题
基本上它解释了如何设置默认行为以推动当前分支执行git push
.可能你需要的是:
git config --global push.default current
其他选择:
我在我的.bashrc配置中使用了这样的别名
alias gpb='git push origin `git rev-parse --abbrev-ref HEAD`'
Run Code Online (Sandbox Code Playgroud)
在命令中,$gpb
它采用当前分支名称并将其推送到原点。
这是我的其他别名:
alias gst='git status'
alias gbr='git branch'
alias gca='git commit -am'
alias gco='git checkout'
Run Code Online (Sandbox Code Playgroud)
对于它的价值,最终的捷径是:
在我.bash_profile
拥有的地方alias push="git push origin HEAD"
,因此无论何时键入,push
我都知道我要推送到当前所在的分支。
如果您使用的是git 1.7.x,则可以运行以下命令来设置远程跟踪分支.
git branch --set-upstream feature/123-sandbox-tests origin/feature/123-sandbox-tests
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地git push
用来推动所有的变化.如需更完整的答案,请在此处查看类似问题的已接受答案.
如果您只想使用push命令推送当前分支,则可以将推送行为更改为上游:
git config --global push.default upstream
Run Code Online (Sandbox Code Playgroud)
最简单的方法:运行git push -u origin feature/123-sandbox-tests
一次.这会按照您习惯的方式推送分支,并在本地配置中设置上游跟踪信息.之后,您可以git push
将跟踪的分支推送到其上游远程.
您也可以在配置中自行设置branch.<branch name>.merge
为远程分支名称(在本例中与本地名称相同),也可以选择branch.<branch name>.remote
设置为要推送到的远程名称(默认为origin).如果你查看你的配置,很可能已经设置了其中一个master
,所以你可以按照这个例子.
最后,请务必考虑push.default
设置.它默认为"匹配",这可能会产生意外和意外的结果.我认识的大多数人发现"上游"更直观,只推动当前分支.
有关这些设置的详细信息,请参阅git-config手册页.
第二个想法,重新阅读你的问题,我想你知道这一切.我认为你真正想要的东西不存在.bash函数怎么样(未经测试):
function pushCurrent {
git config push.default upstream
git push
git config push.default matching
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
129073 次 |
最近记录: |