在GitHub上,他们建议做git push -u origin master,而不是git push。
主要区别是什么?
来自man git-push
:
-u, --set-upstream For every branch that is up to date or successfully pushed, add upstream (tracking) reference ...
[基本上,这意味着它将不仅将master
上传到master
的origin
,还将本地副本origin/master
设置为跟踪分支,即上游您本地的master
。
这通常已经是这种方式,因此,在这种情况下,位于master
中并执行git push -u origin master
与普通git push
并没有什么不同。但是,如果您错误配置了存储库,则有时长版本会自动修复它。
自然,不加思索地执行该命令可能会导致不良情况,例如,如果您在公共工作分支中并且这样做:
{mybranch} $ git push -u origin master
现在您将mybranch
上传为master
,并将origin/master
设置为mybranch
的上游,而不是适当的origin/mybranch
,并且创建了一个烂摊子!
我的猜测是,GitHub建议git新手避免调用其客户支持。但我不建议您将其默认为推送。实际上,如果您错误地配置了上游,则普通git push
将失败,并显示以下消息:
fatal: The current branch a has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
告诉您确切的情况以及如何解决(--set-upstream
是-u
的同义词)。