从其他可能重复关闭的线程中带来了我的答案...
来自 GIT 文档:Git Docs
下面给出了完整的信息。简而言之,只有当它在遥控器上也有相同的名称时simple
才会推送。current working branch
这对初学者来说是一个很好的设置,并将成为默认设置GIT 2.0
而matching
将在本地推送所有在远程具有相同名称的分支。(不考虑您当前的工作分支)。这意味着可能会推送许多不同的分支,包括那些您甚至可能不想共享的分支。
在我个人的使用中,我通常使用不同的选项:current
推送当前的工作分支,(因为我总是分支以进行任何更改)。但对于初学者,我建议simple
push.default
定义如果没有明确给出 refspec,git push 应该采取的行动。不同的值非常适合特定的工作流程;例如,在纯粹的中央工作流程中(即获取源等于推送目标),上游可能是您想要的。可能的值为:
nothing - 除非明确给出 refspec,否则不要推送任何内容(错误输出)。这主要适用于希望通过始终明确来避免错误的人。
current - 推送当前分支以更新接收端同名的分支。适用于中央和非中央工作流程。
上游 - 将当前分支推回其更改通常集成到当前分支中的分支(称为@{upstream})。此模式仅在您推送到通常会从中提取的同一存储库(即中央工作流程)时才有意义。
简单 - 在集中式工作流程中,如果上游分支的名称与本地分支的名称不同,则可以像上游一样工作,并增加安全性以拒绝推送。
当推送到与您通常从中拉出的遥控器不同的遥控器时,作为当前工作。这是最安全的选择,适合初学者。
此模式将成为 Git 2.0 中的默认模式。
匹配 - 在两端推送所有具有相同名称的分支。这使您推送的存储库记住将被推出的一组分支(例如,如果您总是将 maint 和 master 推送到那里而没有其他分支,那么您推送到的存储库将具有这两个分支,以及您的本地 maint 和 master将被推到那里)。
要有效地使用此模式,您必须确保在运行 git push 之前您将推出的所有分支都准备好推出,因为此模式的重点是允许您一次推送所有分支。如果您通常只在一个分支上完成工作并推出结果,而其他分支未完成,则此模式不适合您。此外,此模式不适合推送到共享的中央存储库,因为其他人可能会在那里添加新分支,或者更新您无法控制的现有分支的尖端。
这是目前的默认设置,但 Git 2.0 会将默认设置更改为简单。