Git — Отменить Все Незакоммиченные Изменения

Предположим вы работаете над проектом который трекается с помощью Git и внезапно осознали что сделали что-то не так.

Предположим у вас имеются какие-то незакоммиченные изменения и вы хотите все отменить.

В частности, вы хотите удалить все новый файлы и папки, откатить измененные, восстановить удаленные и тому подобное.

Короче говоря, вам необходимо отменить все изменения и вернуться к последнему коммиту.

Дельный Совет: Хотите просмотреть историю изменений какого-то конкретного файла? Узнайте историю коммитов этого файла, историю изменений и вплоть до истории его переименований! Читать далее →

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

Отменить Все Изменения

Уберите из индексации все файлы и директории, которые вы возможно уже проиндексировали с помощью git add:

$ git reset --hard HEAD

Удалить Файлы И Папки Вне Индекса

Хорошая идея: Прежде чем приступать к удалению сначала просто выполните git clean -n, чтобы предварительно просмотреть список файлов и папок которые будут удалены и убедиться в их ненужности.

Дельный Совет: Подзабыли значение какого-то термина в Git? Не беда! Просто прочитайте и добавьте в закладки эту статью! Эта статья →

Просмотреть, а затем удалить непроиндексированные файлы и папки:

$ git clean -nd
$ git clean -fd

Только что вы успешно удалили файлы которые еще не трекаются с помощью Git и о которых он соответственно ничего не знает, но этого может быть недостаточно.

Команда выше не удаляет файлы которые перечислены в .gitignore.

Например какие-то билды или временные файлы за которыми обычно Git не следит.

И конечно вы возможно захотите удалить такие файлы тоже.

Внимание! Выполнение следующей команды эквивалентно клонированию репозитория с помощь git clone. Она УДАЛЯЕТ ВСЕ НЕПРОИНДЕКСИРОВАННЫЕ ЛОКАЛЬНЫЕ ФАЙЛЫ, ВКЛЮЧАЯ ИГНОРИРУЕМЫЕ GIT-ом через .gitignore.

Просмотреть, а затем удалить ВСЕ непроиндексированные файлы и папки, включая игнорируемы Git-ом:

$ git clean -ndx
$ git clean -fdx

One Reply to “Git — Отменить Все Незакоммиченные Изменения”

Добавить комментарий