git - Warning: push.default is unset; its implicit value is changing in 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 ( 打印) 之间的区别是什么?

如果我在一个客户上更改它,我需要在其他客户上做任何我共享的仓库?

时间:

中对文档 ( 在页面上搜索 push.default ) 进行了详细的解释,但我将尝试总结:

  • 在 remote, matchinggit push推送所有本地分支以那些以同样的手段 name. 这使得不小心推到你不打算的分支。

  • simplegit push 手段将推送当前分支到一个从git pull 将拉版本,并还将检查它们的名称匹配。 这是一个更直观的行为,这就是为什么默认会被改成这个。

这里设置只影响本地客户端的行为,可以通过显式指定要推送到 命令行的分支来覆盖。 其他客户机可以有不同的设置,它只影响发生了什么当你不指定变更集的分支要推送

我意识到这是一个旧的帖子,但我遇到了同样的问题,并遇到了问题,我觉得我应该添加一点。

所以 @hammar's 回答是正确的。 在某种程度上,使用 push.default simple 就像在你的分支上配置跟踪那样,在推和拉时不需要指定远程和分支。 matching 选项将把所有分支推送到默认远程( 这是第一个设置,除非你配置了仓库否则) 上的相应对应项。

在 OS X Mountain Lion 和从来没有看到这个error,未来的一件事情是我希望别人觉得有用的是我是在运行 Git 升级到小牛是突然出现的( 运行 git --version 会显示 git version 1.8.3.4 (Apple Git-47) 在更新到操作系统之前我从未见过。

Git 2.0更改默认为'简单'为 2013, November 1: http://blog.nicoschuele.com/posts/git-2-0-changes-push-default-to-simple

...