我已经使用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
我显然可以将其设置为上述值之一,但它们意味着什么?简单和搭配有什么区别?
如果我在一个客户端上更改它,我是否需要在与我共享回购的其他客户端上执行任何操作?
把我的答案从另一个可能会重复的线程中传过来。。。
来自GIT文档:GIT文档
以下是完整信息。简而言之,simple只会推送当前的工作分支,即使如此,也只会在远程上具有相同的名称。对于初学者来说,这是一个非常好的设置,并将成为GIT 2.0的默认设置
而匹配将在本地推送远程上具有相同名称的所有分支。(不考虑您当前的工作部门)。这意味着可能会推送许多不同的分支,包括您甚至不想共享的分支。
在我的个人使用中,我通常使用一个不同的选项:current,它推送当前工作分支,(因为我总是为任何更改分支)。但对于初学者,我建议
推送故障定义如果没有refspec,git push应该采取的操作明确给出。不同的值非常适合特定的工作流;例如,在纯粹的中心工作流(即获取源等于推送目的地),上游可能是你想要的。可能的值包括:nothing-除非refspec是明确给出。这主要是针对那些想要避免总是明确地犯错误。current-推送当前分支以使用该分支更新分支接收端的名称。在中央和非中央工作工作流。upstream-将当前分支推回到其更改的分支通常集成到当前分支(称为@{upstream})。只有当您按下您通常会从相同的存储库中提取(即中央工作流)。简单-在集中式工作流中,像上游一样工作,添加如果上游分支机构的名称不同,则拒绝推送的安全性来自本地的。当按下与遥控器不同的遥控器时正常情况下,作为电流工作。这是最安全的选择适合初学者。此模式将成为Git2.0中的默认模式。matching-在两端推送具有相同名称的所有分支。这使存储库记住分支集合将被推出(例如,如果您总是推出maint和master没有其他分支,您推送到的存储库将具有这两个分支,您的本地maint和master将被推送在那里)。要有效地使用此模式,必须确保所有分支在运行git push之前,您将被推出,因为此模式的要点是允许您树枝一气呵成。如果你通常只完成一个分支的工作当其他分支未完成时,此模式为不适合你。此外,此模式不适合推入共享中央存储库,因为其他人可能会在那里添加新的分支,或者更新您控制之外的现有分支的提示。这是当前的默认值,但Git 2.0会将默认值更改为易于理解的