git set-upstream-to=origin/master (远程的本地副本)

标签 git version-control branch git-branch

我读过很多关于“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/

相关文章:

Git stash then checkout 每次

linux - SVN - 删除现有存储库

git - 向我的免费 G​​itHub 帐户添加协作者?

git - git 分支后的# 标签是什么意思

Git:无法理解为什么分支(主题)提交/merge 发生在主分支上

git - 如何将协作者添加到 openshift git repo

git - 由于特殊字符 "Ã",无法删除 GIT 标签

git - Git 的 Brew 更新错误

c++ - 优化,分支消除

git:如何(严重地)重新排序提交序列