Warning: push.default is unset; its implicit value is changing in Git 2.0
Warning: push.default is unset; its implicit value is changing in Git 2.0
技术背景
在Git 2.0版本中,push.default
的隐式值发生了改变。当使用git push
命令且未设置push.default
时,就会出现警告信息。了解不同的push.default
设置值,能帮助我们更精准地控制git push
的行为。
实现步骤
1. 了解不同的push.default
值
- matching:
git push
会将所有本地分支推送到远程同名分支。这可能会意外推送一些不想推送的分支。 - simple:
git push
仅将当前分支推送到git pull
拉取的分支,并且会检查名称是否匹配。这是一种更直观的行为,也是Git 2.0的默认设置。 - nothing:除非明确指定refspec,否则不推送任何内容(报错)。主要用于希望始终明确操作以避免错误的用户。
- current:将当前分支推送到接收端同名分支,适用于集中式和非集中式工作流。
- upstream:将当前分支推回到通常将更改集成到当前分支的分支(即
@{upstream}
),仅在推送到通常拉取的同一仓库时才有意义(集中式工作流)。
2. 设置push.default
值
可以通过以下命令设置push.default
值:
1 |
|
其中<value>
可以是matching
、simple
、nothing
、current
或upstream
。
核心代码
设置push.default
为simple
1 |
|
设置push.default
为current
1 |
|
最佳实践
- 初学者:建议使用
simple
模式,它更安全,能避免意外推送不必要的分支。 - 个人开发:如果总是为每个更改创建新分支,可以使用
current
模式,只推送当前工作分支。
常见问题
1. 升级系统或Git版本后出现警告
如在升级到Mavericks后,Git 1.8.3.4可能会出现此警告。可以通过设置push.default
值来消除警告。
2. Git抱怨配置中的simple
值
如果Git抱怨simple
值,检查Git版本。若版本过低,可能不支持simple
值,可以考虑升级Git。
Warning: push.default is unset; its implicit value is changing in Git 2.0
https://119291.xyz/posts/warning-push-default-is-unset-its-implicit-value-is-changing-in-git-2-0/