>_ IzzyLab

Практическое задание

Откати неудачный коммит

средне

Последний коммит в /root/project сломал приложение. Откати его так, чтобы история сохранилась (не переписывай её force-пушем): создай новый коммит, отменяющий изменения последнего. Файл broken.txt, добавленный тем коммитом, после этого должен исчезнуть из рабочего дерева.

Что потренируешь:
  • git
  • git revert
  • откат коммита
  • история git
  • HEAD

Разбор темы

Откатить коммит можно двумя принципиально разными путями. git reset двигает указатель ветки назад и стирает коммит из истории — это переписывание истории, недопустимое для уже опубликованных коммитов, потому что у коллег дерево разъедется. Безопасная альтернатива — создать поверх новый коммит, который вычисляет и применяет обратный патч к нежелательному: история при этом только растёт вперёд и ничего не теряется. Задача про то, когда переписывать историю нельзя и как отменить изменения, не трогая уже существующие коммиты.

Что проверяется

  1. broken.txt удалён из рабочего дерева
  2. история сохранена, добавлен коммит-revert
  3. файл app.txt сохранён

Как это выглядит