Mar*_*rko 1615 git version-control
我一直在使用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
Run Code Online (Sandbox Code Playgroud)
我显然可以将它设置为所提到的值之一,但它们是什么意思?simple
和之间有什么区别matching
?
如果我在一个客户端上更改它,我是否需要在我共享回购的其他客户端上做任何事情?
ham*_*mar 2142
它在文档中有详细解释,但我会总结一下:
matching
意味着git push
将所有本地分支推送到远程上具有相同名称的分支.这样很容易意外地推动您不想要的分支.
simple
means git push
将仅将当前分支推送到git pull
将从中拉出的分支,并检查其名称是否匹配.这是一种更直观的行为,这就是默认情况发生变化的原因.
此设置仅影响本地客户端的行为,可以通过显式指定要在命令行上推送哪些分支来覆盖此设置.其他客户端可以具有不同的设置,它只会影响您未指定要推送哪些分支时发生的情况.
Bil*_*ill 19
我意识到这是一个很老的帖子但是因为我遇到了同样的问题并且很难找到答案我认为我会添加一些.
所以@ hammar的回答是正确的.使用push.default simple
是,在某种程度上,就像在配置上你的分支跟踪,所以你并不需要推拉时指定的遥控器和分支机构.该matching
选项会将所有分支推送到默认远程控制器上的相应对应部分(这是第一个设置的部分,除非您已配置了您的存储库).
我希望其他人在将来发现有用的一件事是我在OS X Mountain Lion上运行Git 1.8并且从未看到过这个错误.升级到Mavericks是突然出现的(运行git --version
将显示git version 1.8.3.4 (Apple Git-47)
我在操作系统更新之前从未见过的).
如果你从git收到一条消息抱怨simple
配置中的值,请检查你的git version
.
在升级XCode
(Mac
运行中Mountain Lion
),也git
从1.7.4.4升级到1.8.3.4之后,在升级之前启动的shell仍在运行git 1.7.4.4并且抱怨simple
全局配置中push.default 的值.
解决方案是关闭运行旧版本的shell git
并使用新版本!