
Файлы в рабочем каталоге Git могут быть как отслеживаемыми, так и неотслеживаемыми.
Отслеживаемые файлы — это файлы, которые были добавлены и зафиксированы, и о которых Git знает. Отслеживаемые файлы могут быть неизменёнными, изменёнными или проиндексированными. Все остальные файлы в рабочем каталоге не отслеживаются, и Git не знает о них.
Иногда ваш рабочий каталог git может быть загромождён ненужными файлами, которые либо сгенерированы автоматически, либо остались после слияний, либо созданы по ошибке. В таких случаях вы можете либо добавить эти файлы в .gitignore , либо удалить их. Если вы хотите поддерживать чистоту репозитория, лучше всего удалить ненужные файлы.
В этой статье объясняется, как удалить неотслеживаемые файлы в Git.
Удаление неотслеживаемых файлов
Команда, позволяющая удалить неотслеживаемые файлы, — git clean .
Всегда полезно создавать резервную копию репозитория, поскольку после удаления файлы и внесенные в них изменения не подлежат восстановлению.
Перед запуском самой команды и удалением неотслеживаемых файлов и каталогов используйте опцию -n , которая выполнит «пробный прогон» и покажет, какие файлы и каталоги будут удалены:
git clean -d -n
Вывод будет выглядеть примерно так:
Would remove content/test/ Would remove content/blog/post/example.md
Если некоторые из перечисленных выше файлов важны, вам следует либо начать отслеживать эти файлы с помощью git add , либо добавить их в свой .gitignore .
Если вы уверены, что хотите продолжить и удалить неотслеживаемые файлы и каталоги, введите:
git clean -d -f
Команда выведет все успешно удаленные файлы и каталоги:
Removing content/test/ Removing content/blog/post/example.md
Параметр -d указывает git также удалить неотслеживаемые каталоги. Если вы не хотите удалять пустые неотслеживаемые каталоги, опустите параметр -d .
Параметр -f означает принудительное удаление. Если он не используется и переменная конфигурации Git clean.requireForce имеет значение true, Git не удалит файлы.
Для интерактивного удаления неотслеживаемых файлов используйте опцию -i :
git clean -d -i
В выводе будут указаны файлы и каталоги, которые необходимо удалить, а также будет задан вопрос о том, что делать с этими файлами:
Would remove the following items: content/test/ content/blog/post/example.md *** 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. Не забывайте всегда выполнять команду в тестовом режиме перед удалением файлов.
Если у вас есть отзыв, оставьте комментарий ниже.
Связанные руководства