我使用以下命令推送到远程分支:
git push origin sandbox
如果我说
git push origin
这是在我的其他分支中也推送更改,还是只更新我的当前分支?我有三个分支:master、production和sandbox。
git推送文档对此不是很清楚,所以我想永远澄清这一点。
下面的git push命令会准确更新哪些分支和远程?
git push
git push origin
上面的原点是一个遥控器。
我知道gitpush[remote][branch]将只将该分支推送到远程。
(2012年3月)注意:默认的“匹配”策略可能很快就会改变(有时在git1.7.10+之后):
请参阅“请讨论:当你不说推送什么时,“git推送”应该做什么?”
在当前设置中(即push.default=matching),不带参数的gitpush将推送本地和远程存在的同名分支。当开发人员将其推送到自己的公共存储库时,这通常是合适的,但在使用共享存储库时如果不是危险的话,可能会令人困惑。建议将默认值更改为“上游”,即仅推送当前分支,并将其推送到git pull将从中拉出的分支。另一位候选人是“现任”;这只将当前分支推送到同名的远程分支。到目前为止讨论的内容可以在本主题中看到:
http://thread.gmane.org/gmane.comp.version-control.git/192547/focus=192694
之前的相关讨论包括:
http://thread.gmane.org/gmane.comp.version-control.git/123350/focus=123541http://thread.gmane.org/gmane.comp.version-control.git/166743
要加入讨论,请将消息发送到:git@vger.kernel.org
您可以使用push.default为git设置默认行为
git config push.default current
或者如果您有许多存储库,并且希望所有存储库都相同
git config --global push.default current
这个设置中的current意味着默认情况下,您只在执行gitpush时推送当前分支
其他选项包括:
无:不要推任何东西matching:推送所有匹配的分支(默认)跟踪:将当前分支推到它正在跟踪的任何位置current:推送当前分支
更新-实现此操作的新方法
截至Git 1.7.11,请执行以下操作:
git config --global push.default simple
这是一个新的设置,其工作方式与当前相同,根据传言,它将从v2.0默认为git
(2012年3月)注意:默认的“匹配”策略可能很快就会改变(有时在git1.7.10+之后):
请参阅“请讨论:当你不说推送什么时,“git推送”应该做什么?”
在当前设置中(即push.default=matching),不带参数的gitpush将推送本地和远程存在的同名分支。当开发人员将其推送到自己的公共存储库时,这通常是合适的,但在使用共享存储库时如果不是危险的话,可能会令人困惑。建议将默认值更改为“上游”,即仅推送当前分支,并将其推送到git pull将从中拉出的分支。另一位候选人是“现任”;这只将当前分支推送到同名的远程分支。到目前为止讨论的内容可以在本主题中看到:
http://thread.gmane.org/gmane.comp.version-control.git/192547/focus=192694
之前的相关讨论包括:
http://thread.gmane.org/gmane.comp.version-control.git/123350/focus=123541http://thread.gmane.org/gmane.comp.version-control.git/166743
要加入讨论,请将消息发送到:git@vger.kernel.org
下面是关于Git推送的非常方便和有用的信息:Git推送:提示
git push最常见的用法是将本地更改推送到公共上游存储库。假设上游是一个名为“origin”(如果您的存储库是克隆,则为默认远程名称)的远程,并且要更新到/来自的分支名为“master”(默认分支名称),这可以通过以下方式完成:git push origin master
gitpushorigin将把所有本地分支的更改推送到源远程的匹配分支。
gitpushoriginmaster将从本地主分支向远程主分支推送更改。
gitpushorigin-master:如果存在,staging会将更改从本地master分支推送到远程staging分支。