git push origin的结果是什么?

我在我的地方特色分部foo工作。 然后,我想推动这个新的分支来源,以便其他人可以在它上面工作。 正常的做法是:

git push origin foo:foo 

我最终做了,它完全按预期工作,推出了61件物品。 在做这件事之前,我想:

 git push origin 

想想也许它会默认根据我的本地分支的名字创build一个新的远程分支。 输出是正常的推动输出,只有13个物体被推高。 结果是不可思议的。 取回之后,其他开发者或本地回购商都没有出现新的东西。

那么当我做git push origin时候git认为我告诉它要做什么,以及对我的远程repo有什么影响?

这取决于你的git版本。 在旧版本中,它会尝试推动也存在于远端的每个本地分支。 从版本1.6.3开始,行为由push.defaultconfiguration选项控制。

价值观是:

  • matching :[ 默认 ]推送具有相同本地和远程名称的所有分支
  • nothing :什么都不要
  • tracking :如果跟踪远处的分支,则只会推送当前分支
  • current :将推动当前分支

2012年6月: [ANNOUNCE] Git 1.7.11.rc1

推出了一种新的simple push模式,即current ”与“ upstream ”之间交叉
没有任何refspec的“ git push ”会在当前分支被设置为在那里跟踪具有相同名字的分支的时候,当前分支推送到远程仓库中的相同名字
当没有configurationpush.default时,计划是使这个模式成为新的默认值。


2012年3月: 谨防:默认的“匹配”政策可能会很快改变
(在Git1.7.10 +之后)

请参阅“ 请讨论:什么”git推“应该做,当你不说什么推动?

在当前的设置 (即push.default=matching ), 没有参数的git push会推送所有本地和远程同名的分支
当开发人员推送到自己的公共存储库时,这通常是合适的,但是如果使用共享存储库时不是危险的话,可能会造成混淆。

build议是将默认值更改为' upstream ' ,即只推送当前分支,并将其推到分支git拉将从中拉。
另一个候选人是“ current ”; 这只将当前分支推送到相同名称的远程分支。

到目前为止,已经讨论过的内容可以在这个主题中看到:

http://thread.gmane.org/gmane.comp.version-control.git/192547/focus=192694

先前的相关讨论包括:

要join讨论,请发送邮件到:git@vger.kernel.org