警告:push.default 未设置;在 Git 2.0 中,其隐含值将发生更改。
警告: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
之间有什么区别?
如果我在一个客户端上进行更改,我需要在与之共享仓库的其他客户端上做任何事情吗?
admin 更改状态以发布 2023年5月21日
我知道这是一个旧的贴子,但是由于我遇到了同样的问题并且很难找到答案,所以我想要补充一点内容。
所以,@hammar 的答案是正确的。使用 push.default simple
,有点像在分支上配置跟踪,因此在推送和拉取时不需要指定远程和分支。 matching
选项将所有分支推送到它们对应的默认远程分支(这是第一个设置的远程分支,除非您已经配置了您的仓库)。
希望其他人在未来能够发现一个有用的事情是,我在 OS X Mountain Lion 上运行 Git 1.8 时从未看到这个错误。升级到 Mavericks 才突然出现(运行 git --version
将显示 git version 1.8.3.4 (Apple Git-47)
,我从未见过直到升级操作系统。)
在文档中有详细的解释,但我试图做一个总结:
-
matching
表示git push
会 推送所有本地分支 到远程同名分支。这使得不小心推送了不希望推送的分支成为可能。 -
simple
表示git push
会 只将当前分支推送到git pull
所抓取的分支上,同时检查它们的名称是否匹配。这是更直观的行为,这就是为什么默认值被更改为这个。
此设置仅影响本地客户端的行为,并且可以通过明确指定要在命令行上推送的分支来覆盖。其他客户端可能有不同的设置,它只影响当您没有指定要推送哪些分支时发生的情况。