警告: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
将从中拉出来的分支 ,并且检查它们的名字是否匹配。 这是一个更直观的行为,这就是为什么默认情况正在改变为此。
此设置仅影响本地客户端的行为,并且可以通过明确指定要在命令行上推送哪些分支来覆盖。 其他客户端可以有不同的设置, 它只影响当您不指定要推送哪个分支时发生的情况 。
我意识到这是一个旧帖子,但因为我遇到了同样的问题,无法找到答案,我想我会补充一点。
所以@哈马尔的回答是正确的。 使用push.default simple
就像在分支上配置跟踪一样,所以在推拉时不需要指定远程和分支。 matching
选项会将所有分支推送到其默认远程设备上的相应对应设备(这是第一个设置的,除非您已经配置了您的回购库)。
有一件事我希望别人能够在将来找到有用的东西,那就是我在OS X Mountain Lion上运行Git 1.8并从未看到过这个错误。 升级到小牛是突然出现的(运行git --version
会显示git version 1.8.3.4 (Apple Git-47)
,这是我在更新操作系统之前从未看到的。
如果你从git收到关于配置中simple
值的消息,请检查你的git version
。
在升级XCode
(在运行Mountain Lion
的Mac
上)后,它也将git
从1.7.4.4升级到1.8.3.4 ,在升级之前,shell仍然运行git 1.7.4.4,并抱怨全局push.default的值simple
配置。
解决方案是关闭运行旧版本git
的shell并使用新版本!
上一篇: Warning: push.default is unset; its implicit value is changing in Git 2.0
下一篇: "simple" vs "current" push.default in git for decentralized workflow