当我在Git中推送到远程时,我收到此警告:
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
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
To **********************************
6b9a6d2..3ab1eab master -> master
Run Code Online (Sandbox Code Playgroud)
这个警告意味着什么,应该怎么做呢?
Joh*_*ter 78
这个警告是在Git 1.7.11中引入的,同时还有simple
推送方式.问题是当前的默认值matching
会导致没有经验的用户在某些分支机构位于其远程等价物后面时强制推送,因为分支机构根本不是最新的.最终的结果是他们最终倒闭分支并可能失去他们的工作或其他人的工作.该simple
模式是作为一种新push.default
行为引入的,并将成为Git 2.0中的默认模式(有望在明年年初的某个时候出现).
新simple
行为与upstream
设置非常相似:它只会推送您当前所在的分支,如果它有一个正在跟踪的远程分支.它添加了一个额外的标准:远程分支必须与本地标准具有相同的名称.
正如您所发现的,摆脱消息的方法是设置push.default
.要获得新行为,请使用:
git config --global push.default simple
Run Code Online (Sandbox Code Playgroud)
要获取Git的默认行为但没有警告消息,请使用:
git config --global push.default matching
Run Code Online (Sandbox Code Playgroud)
我真的建议不要使用匹配.一般来说,大多数人真的想要新的simple
行为,或者upstream
.
2016年2月更新:
git 2.8(2016年3月)删除了那条重大警告信息.
见Matthieu Moy()提交2f27520(2016年2月25日).(由Junio C Hamano合并- -在15be621承诺,2016年2月26日)moy
gitster
push
:删除"push.default is unset
"警告消息在2.0转换之前警告很重要,并且在一段时间之后仍然很重要,因此新用户
push.default
明确地在他们的配置中获得,并且如果他们使用旧版本的Git则不会遇到不一致的行为.从1.8.0版本(2012年10月)开始就出现了警告,因此我们可以预期绝大多数当前的Git用户都会接触到它,并且大多数用户已经
push.default
明确设置过.从"匹配"到"简单"的转换计划为2.0(2014年5月),但实际上仅发生在2.3(2015年2月).今天,警告主要是由初学者看到的,他们还没有设置他们的
push.default
配置.对于他们中的许多人来说,警告令人困惑,因为它谈到了他们没有学到的概念,并要求他们做出他们尚未做出的选择.例如,请参阅" 警告:未设置push.default;其隐式值在Git 2.0中更改 "(问题为1260票,写作时答案为1824)完全删除警告,以避免打扰初学者.仍偶尔使用较旧版本Git的人将通过此旧版本接收警告.
最终,没有警告的Git版本将被足够部署,教程将不再需要建议设置
push.default
.
原始答案(2014年3月)
该警告将很快在git 2.0(2014年第2季度)中更改,提交289ca27并提交11037ee:
push.default没有设置; 其隐含的值已经改变在GIT中2.0从"匹配的",以"简单".
要压制此消息并保持传统行为,请使用:
git config --global push.default matching
Run Code Online (Sandbox Code Playgroud)
要压制此消息并立即采用新行为,请使用:
git config --global push.default simple
Run Code Online (Sandbox Code Playgroud)
当
push.default
设置为'matching
'时,git会将本地分支推送到已存在的具有相同名称的远程分支.从Git 2.0开始,Git默认使用更保守的
simple
"行为",它只将当前分支推送到git pull
用于更新当前分支的相应远程分支.
请参阅" 为什么要推送匹配Git中的默认值? ".
归档时间: |
|
查看次数: |
48339 次 |
最近记录: |