Почему я не могу переключиться на другую ветку Github? - PullRequest
1 голос
/ 17 апреля 2020

Я использую Github. Мой друг создал ветку с именем broken_textures в нашем хранилище, и я не могу понять, как перейти на эту ветку. Я пробовал git pull origin/broken_textures и многие другие варианты, но он продолжает говорить мне, что хранилище не существует. Наибольший успех у меня был git checkout remotes/origin/broken_textures, который создал отдельную ГОЛОВКУ, указывающую на ветку Я просто хочу скопировать ветку на мой компьютер, чтобы я мог работать над ней, а позже я хочу объединить ее с мастером. Как я должен это сделать, и что я не понимаю в системе ветвления?

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Извлечение локальной ветки из удаленной ветки автоматически создает так называемую «ветку отслеживания» (или иногда «восходящую ветку»). Отслеживающие ветви - это локальные ветви, которые имеют прямое отношение к удаленной ветви. Если вы находитесь в отслеживающей ветке и набираете git pull, Git автоматически знает, с какого сервера нужно извлечь данные и в какую ветку объединить.

Когда вы клонируете репозиторий, он обычно автоматически создает master ветка, которая отслеживает origin/master. Однако вы можете настроить другие ветви отслеживания, если у вас есть sh - те, которые отслеживают ветви на других пультах или не отслеживают ветку master. Простой случай - это пример, который вы только что видели, с git checkout -b [branch] [remotename]/[branch]. Это достаточно распространенная операция, которая git обеспечивает сокращение --track:

$ git checkout --track origin/BRANCH_NAME

С помощью --track вы создаете локальную ветвь. От git версии зависит, нужно ли добавить --track или нет (достаточно из Git 1.7.2.4 git checkout BRANCH_NAME).

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

0 голосов
/ 18 апреля 2020

Вы пытаетесь получить доступ к ветке, которая не хранится локально. Таким образом, вы должны извлечь данные из удаленного узла, создать локальную ветвь, и она должна быть настроена для отслеживания удаленной ветки. Самый простой способ - сделать следующее

git fetch origin
git checkout -b broken_textures origin/broken_textures
...