我读过很多关于“起源/主人”的答案,他们说这是分支母师的远程起源的本地副本。当我读到关于set--上游--它应该在哪里指远程分支主--时,我很困惑,所以谁能解释为什么设置--上游--引用本地副本而不是远程?就像git push origin master
而不是git push origin/master
发布于 2018-10-22 04:02:45
对于基本Git命令中的引用,您似乎有些困惑。你应该有困惑,因为这让人困惑。
本地分支master
只存在于您的本地Git中,它位于您实际开发工作的大部分工作中。类似地,在远程上也有一个名为master
的分支。现在,为了混淆起见,有第三个分支名为origin/master
。这是一个本地分支,它存在于您的本地回购中。它的存在主要是作为真正的远程master
分支的代理。每当您与远程master
分支同步时,本地实际上使用的是origin/master
。
执行git pull origin master
实际上与此相同(假设默认情况下您使用的是合并策略):
git fetch origin
git merge origin/master
第一步,git fetch origin
,用最新的更改更新本地跟踪分支origin/master
,以便它反映远程上真正的master
分支。然后,它使用master
将其合并到本地origin/master
分支中。以下是一个简短的总结:
master | the master branch (either local or remote)
origin master | the master branch on the remote (as in the git pull command)
origin/master | local tracking branch for master which mirrors the remote version
因此,考虑到origin/master
是跟踪真正的远程master
分支的实际分支,我们可以通过以下方法告诉Git使用origin/master
作为跟踪分支:
# from local master branch
git --set-upstream-to origin/master
注意,如果在本地创建或签出master
,Git通常会在幕后创建origin/master
作为默认跟踪分支。因此,在实践中,您可能不必经常使用--set-upstream-to
。
https://stackoverflow.com/questions/52922169
复制相似问题