Как вытащить удаленную ветку локально? - PullRequest
1 голос
/ 05 апреля 2019

Я создал проект на Gitlab и клонировал его на своем компьютере.Поэтому у меня есть только одна ветвь (master) локально (git branch показывает только master).Коллега создал новую ветку.Итак, теперь есть 2 ветки на Gitlab, но не на моем компьютере.

Как мне сделать так, чтобы ветвь, созданная моим коллегой, тоже на моем компьютере, так что git branch показывает и master, и new-branch?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Сначала обновите свои удаленные ветви отслеживания (локальные реплики удаленных филиалов, с которыми вы не можете взаимодействовать так же, как с вашими локальными филиалами),Обычно это делается с

git fetch

(без каких-либо параметров, подразумевается --all )

Ваш локальный репо будет знать каждый новыйветвь, которую ваш коллега мог создать с момента последней выборки (или извлечения, поскольку извлечение выполняет выборку в качестве первого шага).

Тогда вы сможете создать локальный аналог длялюбой из этих пультов с

git checkout <branchName>

Здесь, обратите внимание, что <branchName> должен быть задан без префикса <remote>/, иначе git попытается проверить так называемую ветку удаленного слежения,что это не может, по замыслу.В этот момент он преобразует ссылку на ветвь в коммит, на который указывает ветка удаленного отслеживания, проверяет эту фиксацию напрямую, что приводит к отключенному состоянию HEAD.(что не страшно, но может расстроить людей, начинающих использовать git)

1 голос
/ 05 апреля 2019

Попробуйте:

git fetch

Это обновит все ветви и вытянет их локально.

Или:

git fetch remote_repo remote_branch:local_branch

Если вас интересует только одна ветка, то:

git checkout local_branch
...