警告: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 
 我可以明显地将其设定为所提到的值之一,但是它们是什么意思?  simple和matching什么区别? 
如果我在一个客户端进行更改,那么我需要在与其他客户端共享回购服务器上进行任何操作?
在文档中有详细的解释,但我会试着总结一下:
- 
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 Lion的Mac上)之后,也将1.7.4.4的 git升级到1.8.3.4 ,在升级之前启动的shell仍在运行git 1.7.4.4,并且抱怨全局的push.default的值simpleconfiguration。 
 解决办法是closures运行旧版本的git的shell,并使用新版本!