Материал предоставлен https://it.rfei.ru

«Очистка» рабочего дерева

В любой момент времени Вы можете использовать следующие команды, чтобы вернуть рабочее дерево Вашего репозитория к состоянию последней созданной ревизии:

git reset -- .
git checkout .
git clean -fd

Эти команды будут подробнее рассмотрены в последующих главах курса, пока остановимся на кратком описании результатов их выполнения:

  • команда git reset -- . удаляет все изменения из области подготовки, в Git эта операция называется «unstaging»; при этом сами изменения не исчезают и остаются в рабочем дереве; файлы, добавленные в рабочее дерево с момента создания последней ревизии, становятся неотслеживаемыми;
  • команда git checkout . восстанавливает все файлы, за исключением неотслеживаемых, в рабочем дереве до состояния, зафиксированного последней ревизией;
  • команда git clean -fd удаляет неотслеживаемые файлы.

Таким образом, после выполнения этих команд рабочее дерево становится «чистым», т.е. полностью синхронизированным с последней ревизией.

На слэнге Git такая последовательность действий называется «hard reset», она может быть выполнена с помощью одной команды:

git reset --hard

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

По умолчанию git reset --hard не удаляет неотслеживаемые файлы, если они не были добавлены в область подготовки. Это поведение может показаться для Вас немного странным. Во избежание недоразумений всегда проверяйте статус репозитория перед совершением важных операций.

Подготовка измененийСоздание ревизии