git set-upstream-to =源/主(远程的本地副本)

时间:2018-10-22 03:50:36

标签: git version-control branch git-branch

我已经阅读了许多有关“起源/母版”的答案,他们说这是分支母版的远程起源的本地副本。当我读到set-upstream-to应该指向远程分支master的地方时,我很困惑,所以谁能解释为什么set-upstream-要引用本地副本而不是remote?像git push origin master而不是git push origin/master

1 个答案:

答案 0 :(得分:0)

您似乎对基本的Git命令中的引用有些困惑。而且您应该感到困惑,因为这很令人困惑。

本地分支master仅存在于本地Git存储库中,是您从事大部分实际开发工作的地方。同样,遥控器上还存在一个名为master的分支。现在,由于混乱,有一个名为origin/master第三分支。这是一个 local 分支,位于您的本地存储库中。它主要用于充当真正的远程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