Подтвердить что ты не робот

Как очистить ( "скопировать" ) удаленный ветвь git в локальный репозиторий

При использовании GIT, как бы "получить" (fetch/pull/whatever...) удаленную ветвь, которую кто-то еще передал удаленному репозиторию в ваш собственный локальный репозиторий, таким образом, что он не пытается и не пытается выполнить слияние на свой собственный локальный код? Скорее я хочу, чтобы точная "копия" удаленной ветки "копировалась" в конкретную локальную ветвь.

Скажем, например, член команды создал экспериментальную функцию, которую он проверил в ветвь "эксперимент" в удаленном репозитории.

Я хочу, чтобы иметь возможность проверить новую ветку в моем локальном репозитории и просто "скопировать" ветвь эксперимента как есть в мою недавно проверенную ветку. Я не хочу объединять его с моим кодом - я хочу полностью перезаписать свой код, чтобы я мог чисто смотреть на то, что он сделал в ветке "эксперимент". Как это сделать?

4b9b3361

Ответ 1

Если вы не хотите слияния:

git reset --hard <remote>/<branch_name>

Это будет делать то, что вы хотите: без слияния, без переустановки, просто установите локальную ветвь в точно такое же состояние, как и у удаленного.

В вашем случае, однако, вам это не нужно. Вы хотите создать локальную ветвь new, которая имеет то же состояние, что и удаленный, поэтому укажите удаленную ветку при создании локальной с помощью git checkout:

git checkout -b <my_new_branch> <remote>/<branch_name>

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

Чтобы убедиться, что у вас есть последнее состояние удаленной ветки, используйте git fetch <remote> перед тем, как проверить или сбросить.