🏆 151 курс за 1 подписку: хватит выбирать — бери все и сразу!

Один клик — 151 возможность. Подпишись на OTUS сейчас!
Техномир мчится вперед, а вместе с ними растут и требования к специалистам. OTUS придумал крутую штуку — подписку на 151 курс по всем ключевым направлениям IT!
-
Почему подписка OTUS меняет правила игры:
- Доступ к 151 курсу от практикующих экспертов
- В 3 раза выгоднее, чем покупать каждый курс отдельно
- До 3 курсов одновременно без дополнительных затрат
- Свобода выбора направления — меняй треки когда угодно
Изучай новое, развивайся в своем темпе, меняй направления — подпишись на OTUS и прокачивай скилы по полной!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576. Erid 2VtzqupFnNL
Из статьи вы узнаете, как правильно отменить последний Git-коммит. Приведена не только теория, но также необходимые команды.
Работая с системой управления версиями Git, вы рано или поздно столкнетесь с распространенной проблемой: случайный коммит ненужных критических изменений. Неплохо, если это только ваш проект, но если речь идет о чем-то более масштабном, предназначенном для целой команды разработчиков, такие ситуации оказываются очень неприятными. Разберемся, как это исправить.
Удалите Git-коммит новым коммитом
Звучит как нонсенс, но только на первый взгляд. Суть в том, что выполняется пустой коммит, который удаляет нежелательные изменения после предыдущего.
Выполните:
git revert HEAD
Команда revert
означает возврат состояния к HEAD
– последнему коммиту в ветке.
Появится следующее сообщение:
Если открытие редактора не нужно, к исходной команде добавляется --no-edit
. Смотрим, как это работает:
git revert HEAD --no-edit
Чтобы удостовериться, что все сделано правильно, выполняется:
git log
Предыдущий неправильный коммит будет присутствовать в логах, но также вы увидите его удаление:
Проверьте Git-статус следующей командой:
git status
Если нужно откатиться к конкретному коммиту, вместо HEAD вписывается его хеш или тег (можно посмотреть в логах/истории). Иногда такая отмена невозможна из-за конфликтов, то есть произошли изменения, которые Git не может отменить. Увидеть конфликтный файл для дальнейшего решения проблемы поможет git status
.
Используйте команду reset
Как видите, revert
оставляет «следы» в истории ветки, а иногда нужно подобную ошибку скрыть. К возможностям reset
относятся:
- Переписывание текущей ветки, которая будет указывать на необходимый коммит.
- Сброс буферной зоны (опционально).
- Сброс рабочего каталога (опционально).
Для начала отметьте нужную ветку:
git tag oops
Теперь выполните сброс до коммита oops:
git reset --hard t1
Посмотрите историю:
git hist
Однако все равно ничто не теряется. Запустите команду отображения всех коммитов:
git hist --all
Вы увидите, что ошибочные коммиты все еще на месте, просто удалены из нашей ветки. Опасность данного отката состоит в том, что в случае командной работы такой сброс может сбить с толку других разработчиков, поэтому настоятельно рекомендуется использовать revert
.
Комментарии