通过 git checkout -b 命令新建分支后,git push 时会出现下面的错误提示:
# git push fatal: The current branch make-scripts-executable has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin make-scripts-executable
只有改用 git push --set-upstream ... 才能push,请问有没有什么设置方法,可以直接 git push 。
在 Why do I need to do `--set-upstream` all the time? 中找到了解决方法:
git config --global push.default current git push -u
直接从本地检出的新分支,第一次push,远程仓库还没有与之建立tracing关系的分支,所以需要设置upstream,这个设置一次之后,后面再push的时候就不用设置了
但每次新建分支都有这个问题
@dudu: 是的,因为你是直接中本地拉的新分支。 你可以尝试从远程分支拉新的分支,例如:
git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>
关于push到远程分支你可参考下这篇博客:http://www.cnblogs.com/chrischennx/p/6653774.html
@苍枫露雨: 使用这个方法会出现下面的错误提示:
fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push origin HEAD:master To push to the branch of the same name on the remote, use git push origin dev-test
@dudu: 你看下你当前的push设置是什么,
git config push.default
或者
git config --global push.default
@dudu: 前面说的博客中有关于push.default的说明:
Git中push.default
可以指定在没有明确指定远程分支的情况下,默认push的远程分支,其取值可以是:
central / non-central workflows 是Git的两种常见工作流场景:
在Git 2.0之前,push.default
的内建值被设为'matching',2.0之后则被更改为了'simple'。
@dudu: 默认的设置是simple,本地分支和远程分支名称一样就不会有这个问题了,
@苍枫露雨: 学习了,我想要的就是current
git push --set-upstream origin make-scripts-executable