警告:push.default未设置; 它的隐含价值在Git 2.0中正在发生变化

我一直在使用Git,并且最近下载了一个更新,当我尝试push时发现这个警告消息。

 warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple 

我可以明显地将其设定为所提到的值之一,但是它们是什么意思? simplematching什么区别?

如果我在一个客户端进行更改,那么我需要在与其他客户端共享回购服务器上进行任何操作?

在文档中有详细的解释,但我会试着总结一下:

  • matching意味着git push会将所有本地分支推送到远程的同名分支上。 这可以很容易地意外推送你不想要的分支。

  • simple意思是git push 只会将当前分支推到git pull将会从中git pull分支 ,并且检查他们的名字是否匹配。 这是一个更直观的行为,这就是为什么默认更改为此。

此设置仅影响本地客户端的行为,并且可以通过明确指定要在命令行上推送哪个分支来覆盖。 其他客户端可以有不同的设置, 只有当您不指定要推送哪个分支时才会发生什么情况

我意识到这是一个旧的post,但因为我遇到了同样的问题,无法find答案,我想我会补充一点。

所以@哈马尔的回答是正确的。 使用push.default simple就像在分支上configuration跟踪一样,所以在推拉时不需要指定远程和分支。 matching选项会将所有分支推送到默认远程(这是第一个设置,除非您已经configuration您的回购否则)对应的对应。

有一件事我希望别人能够在将来find有用的东西,那就是我在OS X Mountain Lion上运行Git 1.8,并且从来没有看到这个错误。 升级到小牛是突然出现的(运行git --version将显示git version 1.8.3.4 (Apple Git-47) ,这是我在更新到操作系统之前从未看到的。

如果你从git收到一条消息,抱怨configuration中simple的值,请检查你的git version

在升级XCode (在运行Mountain LionMac上)之后,也将1.7.4.4的 git升级到1.8.3.4 ,在升级之前启动的shell仍在运行git 1.7.4.4,并且抱怨全局的push.default的值simpleconfiguration。

解决办法是closures运行旧版本的git的shell,并使用新版本!