警告: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的值simple
configuration。
解决办法是closures运行旧版本的git
的shell,并使用新版本!