`git push origin`的结果是什么?

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

git push origin foo:foo

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

git push origin

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

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


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

价值观是:

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

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

    推出了一种新的 push 模式,即current ”与“ upstream ”之间交叉 simple模式。
    没有任何refspec的“ git push ”会在当前分支被设置为在那里跟踪具有相同名称的分支时才会将当前分支推送到远程存储库中的相同名称
    计划是在未配置push.default时将此模式设置为新的默认值。


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

    请参阅“请讨论:当您不说推荐内容时,应该做什么”git push“?

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

    建议是将默认值更改为' upstream ' ,即只推送当前分支,并将其推到分支git pull将从中拉出。
    另一位候选人是' 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
  • 要加入讨论,请将您的消息发送到:git@vger.kernel.org

    链接地址: http://www.djcxy.com/p/27055.html

    上一篇: What is the result of `git push origin`?

    下一篇: Error when "git push" to github