Git 2.x 中git push时遇到 push.default 警告的解决方法

96
苏之辛
2016.02.18 20:23* 字数 389

最近在学习使用 git&GitHub,然后今天遇到了一个问题。在执行 git add 和 git commit 操作之后,再进行 git push 操作,出现了如下提示:

$ 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.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

第一感觉是 FxxK 。
然后来看看这一长串英文是在说什么:

警告:push.default (默认push)未设置;在Git 2.0 中,push.default 的值从‘matching’改为‘simple’了。消除此警告并保留以前的习惯,输入:

git config --global push.default matching

消除此警告并采用新的设置值,输入:

git config --global push.default simple

当 push.default 的值设置成 ‘matching’ ,git 将会推送所有本地已存在的同名分支到远程仓库
从 Git 2.0 开始,git 采用更加保守的值'simple',只会推送当前分支到相应的远程仓库,'git pull' 也将值更新当前分支。
……(后面就不译了)

已经说的很清楚了,Git 2.0 需要设置 push.default 的值,两者的区别上面也说了,所以我就采用新的保守值吧,输入:

git config --global push.default simple

然而接下来执行 git push 还是不顶用,因为上面警告的是两个问题,于是再次提示:

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

还没学到后面,就简单百度了一下,结果只是半懂,好像首次 push ,所以输入以下命令即可:

git push -u origin master

之后再直接执行 git push 就可以了。
</br>
参考文章:
Git 2.0 更改 push default 为 'simple'
在 GitHub 上管理项目

计算机