没有指定分支的“git push”的默认行为
我使用以下命令推送到我的远程分支:
git push origin sandbox
如果我说
git push origin
它是否也推动了我其他分支的变化,还是只更新了我目前的分支? 我有三个分支: master
, production
和sandbox
。
git push
文档对此不太清楚,所以我想澄清这一点。
哪些分支和遥控器可以完成以下git push
命令的更新?
git push
git push origin
上面的origin
是一个遥远的。
我明白, git push [remote] [branch]
将只将该分支推送到远程。
您可以通过在git config中设置push.default来控制默认行为。 从git-config(1)文档中:
push.default
定义如果在命令行上没有给出refspec,远程没有配置refspec,并且在命令行上给出的任何选项都没有暗示refspec,那么git push应该采取的行动。 可能的值是:
nothing
:不要推动任何东西
matching
:推送所有匹配的分支
所有在两端具有相同名称的分支都被认为是匹配的。
这是Git 1.x中的默认值。
upstream
:将当前分支推送到其上游分支( tracking
是上游的废弃同义词)
current
:将当前分支推送到同名分支
simple
:(像Git 1.7.11一样新增)像上游一样,但如果上游分支的名字与本地名称不同,则拒绝推送
这是最安全的选择,非常适合初学者。
这将成为Git 2.0中的默认设置。
简单的,当前的和上游的模式适用于那些在完成工作后想要推出一个分支的人,即使其他分支尚未准备好推出
命令行示例:
查看当前配置:
git config --global push.default
要设置新配置:
git config --global push.default current
git push origin
会推送在origin
具有匹配远程分支的本地分支上的所有改变至于git push
像git push <remote>
,其中<remote>
是当前分支的远程(或者源,如果没有为当前分支配置远程)。
从git-push
手册页的Examples部分
您可以使用push.default为git设置默认行为
git config push.default current
或者如果你有很多存储库,并且希望所有的存储库都一样
git config --global push.default current
此设置中的电流意味着默认情况下, 只有在执行git push时才会推送当前分支
其他选项是:
更新 - 新的方式来做到这一点
从Git 1.7.11开始,请执行以下操作:
git config --global push.default simple
这是一个引入的新设置,与当前的方式相同,根据传闻将默认为从v 2.0开始git。
链接地址: http://www.djcxy.com/p/25263.html上一篇: Default behavior of "git push" without a branch specified
下一篇: Git: Howto move changes since last commit to a new branch