Кто-то отправил ветку "новая функция" в общий репозиторий:
git push -u new_feature_branch
Теперь я хотел бы создать копию этой ветки на своем локальном компьютере, чтобы протестировать новую функцию.
Какой самый простой способ сделать это? (Нужно ли мне fetch / pull перед checkout?)
Ответ 1 · рейтинг 41 · Bill Door
Обычно я считаю ненужным использовать git fetch. git pull достаточно. git pull синхронизирует ваш репозиторий с удаленным. После этого new_feature_branch будет доступна.
git checkout new_feature_branch заметит исходную ветку, создаст для вас новую локальную ветку отслеживания и переключится на эту ветку.
git pull
git checkout new_feature_branch
Ответ 2 · рейтинг 29 · Adam Dymitruk
Самый простой способ сделать это:
git fetch
git checkout -t origin/new_feature_branch
Это делается только изначально. С этого момента вы можете продолжать работать с веткой так же, как и с другими, которые используете.
Ответ 3 · рейтинг 15 · Troels Thomsen
Вам нужно получить изменения выше по течению, чтобы ваш локальный репозиторий включал соответствующие объекты (git fetch --all или git fetch <remote>).
После этого вы можете выполнить проверку, используя git checkout <branch> (если вы хотите сделать это явно, вы можете ввести git checkout -b <branch> <remote>/<branch>; локальное имя не обязательно должно совпадать с удаленным). Если у вас еще нет локальной ветки с таким именем, она извлечет удаленную ветку и отследит ее.
В качестве альтернативы этому вы можете использовать git pull <remote> <branch>, но это - с настройками по умолчанию - объединит удаленную ветку с вашей текущей, что, вероятно, не то, что вам нужно.