【发布时间】:2020-08-28 15:06:39
【问题描述】:
在 GitHub 上,他们建议使用 git push -u origin master,而不是 git push。
主要区别是什么?
【问题讨论】:
在 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上传到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 的同义词)。
【讨论】: