git clean --- Удаление неотслеживаемых файлов
После экспериментов, генерации артефактов сборки или создания временных файлов ваша рабочая директория может заполниться неотслеживаемым мусором. git clean удаляет неотслеживаемые файлы, чтобы вы могли начать с чистого листа.
Почему не просто rm?
Вы могли бы удалять файлы вручную, но git clean умнее --- она точно знает, какие файлы Git не отслеживает, и удаляет только их, оставляя отслеживаемые файлы нетронутыми.
Страховка: пробный запуск
По умолчанию git clean отказывается работать без флага. Это защищает вас от случайного удаления файлов. Всегда начинайте с пробного запуска:
git clean -n
Эта команда выводит, что будет удалено, не удаляя ничего на самом деле:
Would remove temp.log
Would remove experiment.js
Would remove scratch/
Внимательно просмотрите список перед продолжением.
Принудительная очистка
Убедившись, что пробный запуск показывает правильный результат, используйте -f для фактического удаления:
git clean -f
Это удаляет все неотслеживаемые файлы. Директории остаются, если не добавить -d:
git clean -fd
Полезные комбинации флагов
git clean -n--- Пробный запуск, показывает, что будет удаленоgit clean -f--- Удалить неотслеживаемые файлыgit clean -fd--- Удалить неотслеживаемые файлы и директорииgit clean -fx--- Удалить неотслеживаемые файлы, включая совпадающие с.gitignoregit clean -fX--- Удалить только файлы, совпадающие с.gitignore(артефакты сборки, кэши)
Когда использовать git clean
- После экспериментов, которые вы хотите отбросить
- Очистка сгенерированных файлов перед новой сборкой
- Сброс рабочей директории в известное состояние
- В паре с
git checkout -- .для полного восстановления всего до последнего коммита
Попробуйте!
- Создайте несколько неотслеживаемых файлов:
echo "temp" > temp.logecho "junk" > scratch.txtmkdir debris && echo "noise" > debris/noise.txt
- Выполните пробный запуск:
git clean -nd- Убедитесь, что перечислены все три элемента
- Принудительная очистка:
git clean -fd- Выполните
git status--- неотслеживаемые файлы исчезли
- Выполните
- Убедитесь, что отслеживаемые файлы по-прежнему на месте
Частая ошибка
Пропуск пробного запуска --- Запуск git clean -f без предварительного -n может безвозвратно удалить файлы, которые вы хотели сохранить. Неотслеживаемые файлы не находятся в истории Git, поэтому восстановить их невозможно. Всегда сначала делайте пробный запуск.