git push -u 有什么区别?
What is the difference between git push -u?
在 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
上传到 origin
的 master
,还会将本地副本 origin/master
设置为跟踪分支,即您本地 master
.
的 upstream
这通常已经是这样了,所以如果是这种情况,处于 master
并执行 git push -u origin master
与普通的 git push
没有什么不同。但是如果你错误地配置了你的存储库,那么有时长版本会自动修复它。
自然地,不假思索地执行该命令可能会导致糟糕的情况,例如,如果您在 public 工作分支中并执行此操作:
{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
的同义词)。
在 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
上传到 origin
的 master
,还会将本地副本 origin/master
设置为跟踪分支,即您本地 master
.
这通常已经是这样了,所以如果是这种情况,处于 master
并执行 git push -u origin master
与普通的 git push
没有什么不同。但是如果你错误地配置了你的存储库,那么有时长版本会自动修复它。
自然地,不假思索地执行该命令可能会导致糟糕的情况,例如,如果您在 public 工作分支中并执行此操作:
{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
的同义词)。