git push -u有什么区别?

问题描述 投票:0回答:1

在GitHub上,他们建议做git push -u origin master,而不是git push。

主要区别是什么?

git github push
1个回答
0
投票

来自man git-push

   -u, --set-upstream
      For every branch that is up to date or successfully pushed, add
      upstream (tracking) reference ...

[基本上,这意味着它将不仅将master上传到masterorigin,还将本地副本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的同义词)。

© www.soinside.com 2019 - 2024. All rights reserved.