我读过很多关于“origin/master”的答案,他们说它是分支 master 的远程源的本地副本。当我读到 set-upstream-to 应该引用远程分支 master 时,我很困惑,所以有人可以解释为什么 set-upstream-to 引用本地副本而不是远程副本吗?就像git Push origin master
而不是git Push origin/master
最佳答案
您似乎对基本 Git 命令中的引用有些困惑。你应该感到困惑,因为它令人困惑。
本地分支 master
仅存在于您的本地 Git 存储库中,您的大部分实际开发工作都在其中进行。同样,远程也存在一个名为 master
的分支。现在,为了避免混淆,有一个名为 origin/master
的第三分支。这是一个本地分支,存在于您的本地存储库中。它的存在主要是作为真正的远程 master
分支的代理。每当您与远程 master
分支同步时,您实际上在本地使用 origin/master
。
执行git pull origin master
实际上与此相同(假设您默认使用 merge 策略):
git fetch origin
git merge origin/master
第一步,git fetch origin
,用最新的更改更新本地跟踪分支origin/master
,以便它镜像真正的master
code> 远程分支。然后,它使用 origin/master
merge 到本地 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
请注意,如果您在本地创建或 checkout master
,Git 通常会在幕后创建 origin/master
作为默认跟踪分支。因此,在实践中,您可能不必经常使用 --set-upstream-to
。
关于git set-upstream-to=origin/master (远程的本地副本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52922169/