Введение
Файлы в рабочем каталоге Git можно отслеживать или не отслеживать.
Отслеживаемые файлы — это те, которые были добавлены и зафиксированы, и о которых git знает. Отслеженные файлы могут быть немодифицированными, отредактированными или подготовленными. Все остальные файлы в рабочем каталоге не отслеживаются, и git не знает об этих файлах.
Иногда ваш рабочий каталог git может быть загроможден ненужными файлами, которые создаются автоматически, остаются после слияния или созданы по ошибке. В таких ситуациях вы можете добавить эти файлы в .gitignore или удалить их. Если вы хотите, чтобы ваш репозиторий был чистым, лучше всего удалить ненужные файлы.
В этой статье объясняется, как удалить неотслеживаемые файлы в Git.
Удаление неотслеживаемых файлов
Команда, удаляющая неотслеживаемые файлы, называется git clean.
Всегда рекомендуется делать резервную копию репозитория, потому что после удаления файлы и внесенные изменения не могут быть восстановлены.
Перед выполнением фактической команды и удалением неотслеживаемых файлов и каталогов используйте параметр -n, который выполнит «тестовый запуск» и покажет, какие файлы и каталоги будут удалены:
git clean -d -n
Вывод будет выглядеть следующим образом:
Would remove content/news/Would remove content/articoli/esempio.txt
Если некоторые из перечисленных выше файлов важны, вы должны начать отслеживать эти файлы с помощью git add или добавить их в свой .gitignore.
Если вы уверены, что хотите продолжить и удалить неотслеживаемые файлы и каталоги, введите:
git clean -d -f
Команда напечатает все успешно удаленные файлы и каталоги:
Removing content/news/Removing content/articoli/esempio.txt
Параметр -d указывает git также удалять неотслеживаемые каталоги. Если вы не хотите удалять пустые неотслеживаемые каталоги, опустите параметр -d.
Параметр -f представляет принудительное (жесткое подавление). Если он не используется и для переменной конфигурации Git clean.requireForce задано значение true, Git не будет удалять файлы.
Если вы хотите интерактивно удалить неотслеживаемые файлы, используйте параметр -i:
git clean -d -i
Вывод покажет файлы и каталоги, которые нужно удалить, и спросит вас, что делать с этими файлами:
Would remove the following items:
content/news/content/articoli/esempio.txt
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers
4: ask each 5: quit 6: help
Выберите один из вариантов и нажмите ENTER.
Если вы хотите ограничить операцию определенными каталогами, передайте пути к каталогам для проверки файлов, которые не отслеживаются, в качестве аргументов команды. Например, чтобы проверить наличие файлов в каталоге src, вы должны запустить:
git clean -d -n src
Удаление игнорируемых файлов
Команда git clean также позволяет удалять игнорируемые файлы и каталоги.
Чтобы удалить все игнорируемые и неотслеживаемые файлы, используйте параметр -x:
git clean -d -n -x
Если вы хотите удалить только пропущенные файлы и каталоги, используйте параметр -X:
git clean -d -n -X
Приведенная выше команда удалит все файлы и каталоги, перечисленные в вашем .gitignore, и сохранит неотслеживаемые файлы.
Вывод
В этом руководстве мы увидели, как удалять неотслеживаемые файлы и каталоги в Git.