Git 2.0 更改 push default 为‘simple’

Git 2.x中默认的push行为从'matching'更改为'simple'。'matching'会在未指定分支时推送所有匹配分支;'simple'则只推送当前分支。可通过配置命令选择行为。
如果你最近更新了 Git,你可能会在执行 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


[b][size=x-large]Matching[/size][/b]
‘matching’ 参数是 Git 1.x 的默认行为,其意是如果你执行 git push 但没有指定分支,它将 push 所有你本地的分支到远程仓库中对应匹配的分支。

[b][size=x-large]Simple[/size][/b]
而 Git 2.x 默认的是 simple,意味着执行 git push 没有指定分支时,只有当前分支会被 push 到你使用 git pull 获取的代码。

[b][size=x-large]修改默认设置[/size][/b]
从上述消息提示中的解释,我们可以修改全局配置,使之不会每次 push 的时候都进行提示。对于 matching 输入如下命令即可:
git config --global push.default matching

而对于 simple ,请输入:
git config --global push.default simple


文章引用自:[url]http://www.oschina.net/news/45585/git-2-x-change-push-default-to-simple[/url]
<think>我们首先解决用户的问题:用户遇到了一个关于Git的警告信息,提示push.default未设置,并且说明了在Git 2.0中默认行为从'matching'变为'simple'。同时给出了两种解决方案。 用户的问题描述实际上是一个警告信息,而不是一个直接的编程问题。但是,我们可以将其视为一个需要解决的配置问题。 解决方案: 根据警告信息,有两种方法可以消除这个警告: 1. 设置push.default为'matching'(传统行为): ```bash git config --global push.default matching ``` 2. 设置push.default为'simple'(新的默认行为): ```bash git config --global push.default simple ``` 我们需要解释一下这两个选项的含义: - 'matching': 推送所有本地分支到远程仓库,并且远程仓库有同名分支的分支(即匹配的分支)。 - 'simple': 只推送当前分支到远程仓库中对应的上游分支(即`git pull`时拉取的分支),并且分支名称要相同。 通常,推荐使用'simple'模式,因为它更安全,避免意外推送多个分支。 因此,我们可以建议用户执行以下命令来采用新的行为并消除警告: ```bash git config --global push.default simple ``` 但是,如果用户希望保持传统的行为(虽然不推荐),则可以使用'matching'。 下面我们给出一个完整的回答,包括代码和解释。 注意:用户要求回答格式为:回答问题-给出解释。然后最后提出相关问题。 由于用户的问题不是编程问题,而是Git配置问题,我们可以这样回答:</think>### 解决 Git 的 `push.default` 警告 这个警告是 Git 在检测到未配置 `push.default` 行为时给出的提示。以下是解决方案: #### 方法 1:采用新的默认行为(推荐) ```bash git config --global push.default simple ``` **解释**: 设置 `push.default=simple` 后: 1. 只推送当前分支到其对应的上游分支 2. 要求分支名称严格匹配(如 `main` 推 `origin/main`) 3. 避免意外推送多个分支 #### 方法 2:恢复旧版默认行为 ```bash git config --global push.default matching ``` **解释**: 设置 `push.default=matching` 后: 1. 推送所有本地分支到远程同名分支 2. 若远程不存在同名分支则自动创建 3. 可能意外推送未完成的分支(不推荐) --- ### 行为对比表 | 行为模式 | `simple` (新版默认) | `matching` (旧版默认) | |----------------|-----------------------------|---------------------------| | 推送范围 | 仅当前分支 | 所有同名分支 | | 分支创建 | 需显式指定 `--set-upstream` | 自动创建同名远程分支 | | 安全性 | ⭐⭐⭐⭐ () | ⭐⭐ () | | Git 版本要求 | 1.7.11+ | 所有版本 | --- ### 永久消除警告 执行以下任一命令即可永久消除警告: ```bash # 采用新行为 (推荐) git config --global push.default simple # 或保留旧行为 git config --global push.default matching ``` **验证配置**: ```bash git config --global --get push.default # 应返回 simplematching ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值