Отмена изменений в рабочей директории
Одна из ключевых возможностей Git — это откат любых сделанных изменений буквально одной командой. Такое практически невозможно сделать без использования системы контроля версий — только если помнить все изменения наизусть. В этом уроке мы поговорим про откат изменений, которые сделаны в рабочей директории, но еще не попали в коммит.
Отдельно отметим, что откат незакоммиченных изменений безвозвратен. Не существует никакой физической возможности получить эти изменения обратно, поэтому будьте крайне осторожны.
Неотслеживаемые файлы
Это самая простая ситуация. Представьте, что вы добавили новые файлы в репозиторий и поняли, что они вам не нужны.
В этом случае можно выполнить очистку:
Забавный факт: про эту команду знает не так много программистов. Используя ее, вы можете удивить даже опытных коллег.
Измененные файлы в рабочей директории
Для отмены изменений в таких файлах используется команда git restore
. Причем Git сам напоминает об этом при проверке статуса:
Изменения, подготовленные к коммиту
С файлами, подготовленными к коммиту, можно поступить по-разному. Первый вариант — отменить изменения совсем, второй — отменить только индексацию, не изменяя файлы в рабочей директории. Второе полезно в том случае, если изменения нужны, но мы не хотим их коммитить сейчас:
И здесь снова помогает Git. При выводе статуса он показывает нужную команду для перевода изменений в рабочую директорию:
Теперь, если нужно, можно выполнить git restore
и окончательно отменить изменения в выбранных файлах:
Самостоятельная работа
Выполните все шаги из урока