Git 拉取一个 push.default 警告



当我将 git 提交推送到我的远程仓库时,出现了以下警告:

clyde-browns-computer-2:bloccit clydiscope$ git commit -m 'Installed gem faker and generated seed    data'
[seed-data fabb6ea] Installed gem faker and generated seed data
 3 files changed, 26 insertions(+), 7 deletions(-)
clyde-browns-computer-2:bloccit clydiscope$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
clyde-browns-computer-2:bloccit clydiscope$ git merge seed-data
Updating 1811f8b..fabb6ea
Fast-forward
Gemfile      |  1 +
Gemfile.lock |  3 +++
db/seeds.rb  | 29 ++++++++++++++++++++++-------
3 files changed, 26 insertions(+), 7 deletions(-)
clyde-browns-computer-2:bloccit clydiscope$ git branch -d seed-data
Deleted branch seed-data (was fabb6ea).
clyde-browns-computer-2:bloccit clydiscope$ git push
warning: push.default is unset; its implicit value has changed in
       Git 2.0 from 'matching' to 'simple'. To squelch this message
       and maintain the traditional behavior, use:
 git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.
Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

我切换到默认匹配只是为了解决问题,但我想知道是否有人可以详细说明这到底意味着什么,以及这种事情是如何发生的。我从 Git 2.0 开始,那么这如何适用于我?

这意味着默认情况下,Git 只推送当前分支,并且仅当该远程中存在同名的远程分支时。

这就是为什么在默认模式下,第一次推送必须是显式推送:

git push -u origin master

在您的情况下,master已经有一个上游分支,所以git push就足够了。

但由于未显式设置推送策略,因此警告会提醒您,默认情况下,仅推送当前分支。
有关详细信息,请参阅"为什么推送匹配 Git 中的默认值?

最新更新