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

1
A. Kriegman 17 Апр 2020 в 23:53

2 ответа

Лучший ответ

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

Когда вы клонируете репозиторий, он обычно автоматически создает ветку master, которая отслеживает origin/master. Однако вы можете настроить другие ветви отслеживания, если хотите - те, которые отслеживают ветви на других пультах, или не отслеживают ветку 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

1
SwissCodeMen 17 Апр 2020 в 22:02

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

git fetch origin
git checkout -b broken_textures origin/broken_textures
0
Hrishi 17 Апр 2020 в 22:02