Как полностью затереть локальную ветку и привести её к состоянию из удаленного репозитория

Бывают ситуации, когда локальные изменения в ветке настолько запутались, что проще полностью сбросить всё и начать «с чистого листа» от удаленной версии. В этой статье рассмотрим два надежных способа, как это сделать.

Ситуация

Представьте: вы работаете над фичей в ветке feature/new-design, накоммитили кучу экспериментального кода, а потом поняли, что всё пошло не так. Или просто хотите получить точную копию ветки из удаленного репозитория, полностью удалив локальные изменения.

Нам нужно:

  • Скачать последнюю версию из origin
  • Полностью заменить локальную ветку на удаленную
  • Удалить все локальные коммиты и изменения

Способ 1: git reset —hard

Это самый прямой способ — вы просто сбрасываете локальную ветку до состояния удаленной.

Пошаговая инструкция:

Что происходит:

  • git fetch origin — загружает свежие данные из удаленного репозитория, не сливая их с локальной веткой. Это безопасная команда.
  • git reset --hard origin/название_ветки — выполняет жесткий сброс:
    • Указатель ветки перемещается на тот же коммит, что и в origin
    • Полностью удаляются все локальные коммиты, которых нет в удаленной ветке
    • Безвозвратно стираются все некоммиченные изменения в рабочей директории

Способ 2: удалить и создать ветку заново

Этот способ еще более радикальный — вы полностью удаляете локальную ветку и создаете её заново из удаленного репозитория.

Пошаговая инструкция:

Что происходит:

  • git branch -D — удаляет локальную ветку даже если она не слита с другими ветками (флаг -D — это форсированное удаление, в отличие от -d, который требует слияния).
  • git checkout -b feature/new-design origin/feature/new-design — создает новую локальную ветку с тем же именем, которая будет «следить» за удаленной веткой.

Мало букафф? Читайте есчо !

Как обновить ветку в Git без переключения на неё

Май 1, 2026 г.

Предположим, вы работаете в ветке feature, а коллеги обновили master. Вам нужно подтянуть свежие изменения в локальный master, но не хочется терять контекст и переключаться туда-обратно. Стандартный git pull работает только с текущей веткой. Что делать? ...

Читать

Как отменить последний коммит в GIT

Ноябрь 24, 2018 г.

Не часто, но бывает необходимо отменить последний выполненный коммит. В зависимости от того, насколько все плохо можно действовать по-разному. Ситуация ...

Читать

GIT может хранить пароли

Сентябрь 30, 2017 г.

Операции с удаленным частным репозиторием требуют ввода пароля. Git может сохранять введенные пароли, чтобы не вводить их при каждой операции. Как это сделать? Во-первых, git может запомнить введенный пароль временно. Это позволит выполнить ряд ...

Читать

Как обновить базовую ветку фичи: кейс с rebase

Апрель 23, 2026 г.

В командной разработке на Git регулярно возникает ситуация: вы работаете над фичей в ветке feature/xxx, ответвившись от master. Пока вы пишете код, коллеги ...

Читать
 

Комментарии к «Как полностью затереть локальную ветку и привести её к состоянию из удаленного репозитория»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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