Как проверить удаленную ветку в Git?

Кто-то отправил ветку «новая функция» в общий репозиторий:

git push -u new_feature_branch

Теперь я хотел бы создать копию этой ветки на своем локальном компьютере, чтобы протестировать новую функцию.

Какой самый простой способ сделать это? (Нужно ли мне fetch / pull перед checkout?)


person Misha Moroshko    schedule 16.01.2012    source источник


Ответы (4)


Обычно я считаю ненужным использовать git fetch. git pull достаточно. git pull синхронизирует ваш репозиторий с удаленным. После этого new_feature_branch будет доступна.

git checkout new_feature_branch заметит исходную ветку, создаст для вас новую локальную ветку отслеживания и переключится на эту ветку.

git pull
git checkout new_feature_branch
person Bill Door    schedule 16.01.2012
comment
git pull == git fetch + git слияние - person KunMing Xie; 24.10.2017
comment
используйте -b, если вам не нужна отдельная голова - person Aerin; 07.09.2020

Самый простой способ сделать это:

git fetch
git checkout -t origin/new_feature_branch

Это делается только изначально. С этого момента вы можете продолжать работать с веткой так же, как и с другими, которые используете.

person Adam Dymitruk    schedule 16.01.2012

Вам нужно получить изменения выше по течению, чтобы ваш локальный репозиторий включал соответствующие объекты (git fetch --all или git fetch <remote>).

После этого вы можете выполнить проверку, используя git checkout <branch> (если вы хотите сделать это явно, вы можете ввести git checkout -b <branch> <remote>/<branch>; локальное имя не обязательно должно совпадать с удаленным). Если у вас еще нет локальной ветки с таким именем, она извлечет удаленную ветку и отследит ее.

В качестве альтернативы этому вы можете использовать git pull <remote> <branch>, но это - с настройками по умолчанию - объединит удаленную ветку с вашей текущей, что, вероятно, не то, что вам нужно.

person Troels Thomsen    schedule 16.01.2012
comment
Интересно, почему в этом ответе говорится, что вы ДОЛЖНЫ использовать fetch --all, а в верхнем ответе просто упоминается fetch. Который из них? - person Petri Sirkkala; 18.07.2017
comment
@PetriSirkkala В ответе не говорится, что вы должны использовать --all. fetch --all говорит о получении всех пультов (если у вас их больше, например, origin). - person Roi Danton; 11.12.2017

person    schedule
comment
не могли бы вы изучить этот вопрос, если у вас есть время. stackoverflow.com/questions/20634111/ - person Tahir Yasin; 12.11.2015