Гид по технологиям

Как очистить Git и удалить неотслеживаемые файлы

5 min read GIT Обновлено 15 Apr 2026
Очистка Git: удалить неотслеживаемые файлы
Очистка Git: удалить неотслеживаемые файлы

Экран компьютера с открытым репозиторием на GitHub

Что такое неотслеживаемые файлы в Git

Неотслеживаемые (untracked) файлы — это файлы, которые находятся в рабочем дереве проекта, но не добавлены в индекс (staged) и не находятся под версионным контролем в репозитории. Одни из них — временные артефакты сборки, другие — конфигурации, созданные локально, которые не должны попадать в удалённый репозиторий.

Коротко: tracked — файлы под контролем (они отслеживаются), untracked — новые или временные файлы, которые Git ещё не добавил.

Важно: если файл уже был закоммичен ранее, простое изменение его не делает его untracked — он остаётся tracked, пока вы явно не удалите его из индекса.

Почему стоит очищать рабочее дерево

  • Чтобы избежать случайной отправки временных или конфиденциальных файлов в удалённый репозиторий.
  • Чтобы снизить шум при просмотре git status и видеть только релевантные изменения.
  • Чтобы предотвратить ошибки деплоя: некоторые сервисы (например, платформы, которые деплоят прямо из Git) могут сломаться из-за лишних файлов.

Важно: перед удалением убедитесь, что файлы действительно не нужны. Удаление через git clean необратимо для файлов, не добавленных в индекс.

Быстрая проверка перед удалением

Запустите команду проверки “на сухо”, чтобы увидеть, что будет удалено, но пока ничего не трогать:

git clean -d -n
  • Опция -d показывает, какие директории будут удалены вместе с файлами.
  • Опция -n (или –dry-run) показывает только список без удаления.

Вывод этой команды покажет все неотслеживаемые файлы и папки, которые удалит git clean при реальном выполнении.

Основные команды для очистки

Удалить перечисленные в dry-run файлы и папки:

git clean -d -f

Удалить только файлы, без удаления директорий:

git clean -f

Удалить также файлы, перечисленные в .gitignore:

git clean -fx

Удалить только те игнорируемые файлы, которые прописаны в .gitignore, но оставить прочие неотслеживаемые файлы:

git clean -fX

Проверить текущее состояние (есть ли ещё неиндексированные изменения):

git status

Интерактивная очистка

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

git clean -i

Добавить в интерактивную сессию файлы из .gitignore:

git clean -ix

Удалить только игнорируемые файлы в интерактивном режиме:

git clean -ifX

В интерактивном режиме Git предлагает фильтрацию по номерам и шаблонам, позволяет выбирать опцию ask (спрашивать перед удалением) или clean (удалить сразу). Это полезно, если вы не полностью уверены.

Если после git clean файлы всё ещё отображаются

Иногда после удаления через git clean файлы всё ещё видны как untracked. Причина в том, что Git может хранить информацию в кэше индекса. В таком случае очистите кэш и удалите файлы из индекса:

git rm -r --cached [имя_файла]

Для нескольких файлов:

git rm -r --cached [файл1] [файл2] [файл3]

После этого снова выполните git clean, чтобы окончательно удалить файлы из рабочего дерева.

Как использовать .gitignore и .git/info/exclude

  • .gitignore — файл в корне репозитория, куда вы добавляете шаблоны файлов, которые не хотите отслеживать и не хотите, чтобы они попадали в коммиты.
  • .git/info/exclude — локальный аналог .gitignore, не попадает в репозиторий; полезен для исключений, специфичных для вашей машины.

Файлы, добавленные в .gitignore, по умолчанию не удаляются git clean (если не использовать -x).

Совет: добавьте временные файлы сборки, локальные IDE-конфигурации и секреты в .gitignore сразу при старте проекта.

Чек-лист перед очисткой (роль-разделённый)

  • Разработчик (Dev):
    • git add и закоммитить все важные изменения;
    • git stash push, если хотите временно сохранить незакоммиченные изменения;
    • запустить git clean -d -n.
  • Интегратор (CI/DevOps):
    • проверить, не зависят ли пайплайны от локальных артефактов;
    • убедиться, что .gitignore корректен для среды деплоя.
  • Тестировщик (QA):
    • убедиться, что файлы сборки и отчёты тестов не удаляются случайно;
    • включить правила сохранения артефактов, если нужно.

Примеры ситуаций и альтернативные подходы

Когда git clean может навредить:

  • Если вы забыли зафиксировать файлы конфигурации, которые нужны для локальной отладки. Решение: сначала закоммитьте или переместите их.
  • Если важные файлы обозначены как неотслеживаемые по ошибке. Решение: перед очисткой просмотрите результат git clean -n.

Альтернативы удалению:

  • Использовать git stash для временного сохранения изменений; stash не трогает неотслеживаемые файлы по умолчанию, но есть опции stash -u для включения их.
  • Перенести файлы в отдельную директорию вне репозитория.
  • Добавить шаблоны в .gitignore, чтобы исключить их из будущих проверок.

Быстрый справочник команд (cheat sheet)

  • Проверка (dry run): git clean -d -n
  • Удаление файлов и директорий: git clean -d -f
  • Удаление только файлов: git clean -f
  • Удаление игнорируемых файлов: git clean -fx
  • Удаление только файлов из .gitignore: git clean -fX
  • Интерактивно: git clean -i
  • Очистка кэша индекса: git rm -r –cached <файл>

Ментальные модели и рекомендации

  • Модель 3 проверок: смотреть, стажировать, удалять — git status → git add/git stash → git clean -d -n → git clean -d -f.
  • Правило безопасного деплоя: никогда не запускать git clean с -x в CI без отдельной проверки, потому что это может удалить файлы, которые собираются на этапе билда.

Критерии приёмки

  • После выполнения git clean -d -f git status не должен показывать нежелательных неотслеживаемых файлов.
  • Все нужные файлы сохранены или перенесены до очистки.
  • .gitignore содержит шаблоны для временных и локальных файлов.

Типичные ошибки и способы их устранения

  • Ошибка: удалил нужные файлы. Решение: если файл был не закоммичен, восстановить нельзя через Git; восстановление только из резервной копии или рабочих копий коллег.
  • Ошибка: используете git clean -fx в CI и удаляете артефакты сборки. Решение: ограничить команды очистки на локальной машине и настроить CI-скрипты осторожно.

Короткое резюме

Очищайте рабочее дерево Git регулярно, но осторожно. Всегда выполняйте dry run перед удалением, используйте .gitignore для долгосрочных исключений и интерактивный режим при сомнениях. Если после очистки файлы всё ещё видны, очистите кэш индекса с помощью git rm –cached и повторите процедуру.

Важно: git clean удаляет неотслеживаемые файлы без возможности восстановления через Git, поэтому перед выполнением убедитесь в безопасности удаления.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Списки в Twitter: как организовать ленту
Социальные сети

Списки в Twitter: как организовать ленту

Как проверить, следит ли работодатель за ноутбуком
Безопасность

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

Инструменты рисования Markup на iPhone и iPad
iOS

Инструменты рисования Markup на iPhone и iPad

Скачивание на Netflix: как сохранять фильмы и сериалы
Руководство

Скачивание на Netflix: как сохранять фильмы и сериалы

Обновить DualSense по беспроводной связи на PS5
Игры

Обновить DualSense по беспроводной связи на PS5

Как сжать видео для отправки по почте
Руководство

Как сжать видео для отправки по почте