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

git set-upstream-to=origin/master (local copy of remote)

我读过很多关于 "origin/master" 的答案,他们说这是分支主机远程源的本地副本。当我读到 set-upstream-to 应该引用远程分支 master 时,我很困惑,所以谁能解释为什么 set-upstream-to 引用本地副本而不是 remote ?喜欢 git push origin master 而不是 git push origin/master

您似乎对基本 Git 命令中的引用有些困惑。你应该有困惑,因为它令人困惑。

本地分支 master 仅存在于您的本地 Git 存储库中,是您进行大部分实际开发工作的地方。类似地,还有一个名为 master 的分支存在于遥控器上。现在,为了混淆,有一个 third 分支叫做 origin/master。这是一个 local 分支,存在于您的本地仓库中。它的存在主要是作为真正远程 master 分支的代理。每当您与远程 master 分支同步时,您实际上在本地使用 origin/master.

git pull origin master实际上与此相同(假设您默认使用合并策略):

git fetch origin
git merge origin/master

第一步,git fetch origin,使用最新的更改更新本地跟踪分支 origin/master,使其反映远程上的真实 master 分支。然后,它使用 origin/master 合并到您的本地 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