git的push.default配置详解
Git的push.default配置用于定义执行git push时未指定远程和分支的默认行为。以下是各选项的详解及使用场景:
1. simple(默认值,Git ≥2.0)
 
-  行为:仅推送当前分支到与其关联的上游分支(即 remote-tracked分支),且要求本地分支名与上游分支名严格一致。
-  使用场景:推荐用于大多数协作开发,确保安全推送,避免意外覆盖或推送其他分支。 
-  示例:若本地分支 feature的上游是origin/feature,则git push会推送至origin/feature;若上游分支名不同,则拒绝推送。
git config --global push.default simple2. current
 
-  行为:推送当前分支到远程同名分支,若远程不存在则自动创建。 
-  使用场景:适合需要快速创建远程同名分支的个人项目,省去手动指定分支名的步骤。 
-  示例:本地分支 dev执行git push,远程自动创建origin/dev。
git config --global push.default current3. upstream(或tracking)
 
-  行为:推送当前分支到其设置的上游分支(通过 git branch --set-upstream-to),不要求本地与远程分支同名。
-  使用场景:适用于分支命名不同的协作,如本地 fix-issue对应远程origin/hotfix。
git config --global push.default upstream4. matching(Git <2.0 的默认值)
 
-  行为:推送所有与远程分支同名的本地分支。 
-  使用场景:需同时推送多个分支的旧项目,但需谨慎,可能意外推送未准备的分支。 
-  示例:本地有 master和dev,远程也存在同名分支,则git push推送两者。
git config --global push.default matching5. nothing
 
-  行为:禁用默认推送,必须显式指定远程和分支(如 git push origin master)。
-  使用场景:高度控制推送行为,确保每次操作都明确意图。 
git config --global push.default nothing配置建议
-  团队协作:使用 simple确保安全性,避免误推。
-  个人项目: current或upstream提高效率。
-  严格管控: nothing防止意外操作。
查看当前配置
git config --get push.default版本差异
-  Git ≥2.0:默认 simple。
-  Git <2.0:默认 matching,升级后建议调整配置。
选择合适的模式可显著提升工作流效率,同时降低误操作风险。根据项目需求及团队规范灵活配置即可。
