为什么我不能切换到另一个 Github 分支?

Why can't I switch to another Github branch?

我正在使用 Github。我的朋友在我们的存储库中创建了一个名为 broken_textures 的分支,但我不知道如何切换到该分支。我试过 git pull origin/broken_textures 和它的许多变体,但它一直告诉我存储库不存在。我取得的最大成功是 git checkout remotes/origin/broken_textures,它创建了一个指向分支的分离 HEAD。我只想将分支复制到我的计算机上,以便我可以对其进行处理,稍后我想将其合并到 master 中。我应该怎么做,我对分支系统有什么不了解的地方?

您正在尝试访问未存储在本地的分支。所以你必须从远程获取详细信息,创建一个本地分支并且应该设置它来跟踪远程分支。最简单的方法是执行以下操作

git fetch origin
git checkout -b broken_textures origin/broken_textures

从远程分支签出本地分支会自动创建所谓的“跟踪分支”(或有时是“上游分支”)。跟踪分支是与远程分支有直接关系的本地分支。如果您在跟踪分支上并键入 git pull,Git 会自动知道从哪个服务器获取并合并到哪个分支。

当您克隆存储库时,它通常会自动创建一个跟踪 origin/mastermaster 分支。但是,您可以根据需要设置其他跟踪分支——跟踪其他远程分支的分支,或者不跟踪 master 分支的分支。简单的情况就是你刚才看到的例子,运行git checkout -b [branch] [remotename]/[branch]。这是一个足够常见的操作 git 提供 --track shorthand:

$ git checkout --track origin/BRANCH_NAME

使用 --track 创建一个本地分支。要不要加--track要看git版本(fromGit1.7.2.4git checkout BRANCH_NAME就够了) .

https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#_tracking_branches