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.default
configuration选项控制。
价值观是:
-
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
先前的相关讨论包括:
- http://thread.gmane.org/gmane.comp.version-control.git/123350/focus=123541
- http://thread.gmane.org/gmane.comp.version-control.git/166743
要join讨论,请发送邮件到:git@vger.kernel.org