我使用以下命令推送到我的远程分支:
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 2.0( simple
是新的默认值)。
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>
是当前分支的远程(如果没有为当前分支配置远程,则为 origin)。
从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