【问题标题】:What is the difference between git push -u? [duplicate]git push -u 有什么区别? [复制]
【发布时间】:2020-08-28 15:06:39
【问题描述】:

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

主要区别是什么?

【问题讨论】:

标签: git git-push


【解决方案1】:

来自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作为跟踪分支,也就是upstream 你当地的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 的同义词)。

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 2019-08-08
    • 2021-11-02
    • 2011-02-14
    • 2012-09-09
    • 2013-06-11
    • 2011-01-12
    相关资源
    最近更新 更多