Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Получение кода ветки на удаленном сервере

#git #git_checkout


Я пытаюсь получить код из ветки удаленного репозитория:

Кто-то отправил в репозиторий ветку с названием test с помощью git push origin test.
Я могу видеть ветку при помощи git branch -r, но как мне получить эту ветку?


git checkout test не работает.
git checkout origin/test что-то делает, но git branch возвращает * (no branch). Я
нахожусь на «no branch».


Перевод вопроса «Checkout remote Git branch » @Juri Glass.
    


Ответы

Ответ 1



Ответ Перед тем, как начать работу над удалённой веткой локально, необходимо получить её (fetch). Чтобы получить ветку, необходимо сделать следующее: git fetch origin Эта команда обновит все удалённые ветки. Вы сможете видеть все ветки, которые можно получить: git branch -v -a Имея список всех веток удалённого сервера, вы можете получить код необходимой ветки для редактирования, и у вас появится её локальная рабочая копия: git checkout -b test origin/test Дополнение В современном Git (>= 1.6.6), достаточно git checkout test (Обратите внимание, что test – это не origin/test.) чтобы выполнить волшебную операцию «делай то, что я имею в виду» и создать локальную ветку test, которая будет иметь имя origin/test на удаленном сервере. Таким образом, в версиях Git ≥ 1.6.6, достаточно следующего: git fetch git checkout test Помните, что git checkout test НЕ будет работать в современном git при использовании сразу нескольких удалённых репозиториев. В этом случае воспользуйтесь git checkout -b test remote-name/test. Строка * (no branch) в выдаче git branch означает, что вы находитесь в безымянной ветке, в так называемом состоянии «detached HEAD» (HEAD указывает непосредственно на коммит и не является символической ссылкой на какую-либо ветку). Если в этой безымянной ветке вы произвели несколько коммитов, вы всегда можете создать локальную ветку вне текущего коммита: git checkout -b test HEAD На основе ответа @hallski и отвеа @Jakub Narębski.

Ответ 2



Есть возможность создать локальную ветку на основе удалённой с её отслеживанием и идентичным именем с помощью команды git checkout --track [уд.репозитрий/уд.ветка]

Комментариев нет:

Отправить комментарий