Git: удаляем неотслеживаемые файлы

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

Разница между отслеживаемыми и неотслеживаемыми файлами

Давайте сначала выделим разницу между отслеживаемыми и неотслеживаемыми файлами.

Отслеживаемые файлы: те, которые были добавлены и зафиксированы в системе управления версиями в предыдущей фиксации или снимке. Git будет отслеживать эти файлы на предмет изменений.

Неотслеживаемые файлы: эти файлы не добавляются и не передаются в систему управления версиями.

Команда git status покажет все изменённые отслеживаемые файлы, а также неотслеживаемые файлы.

git-clean

Команда git clean удобна для очистки неотслеживаемых файлов.

Синтаксис

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

Команда git clean сопровождается многими опциями. Мы рассмотрим некоторые из них.

Опции

-d

Обычно, когда не указан <path>, git clean не будет рекурсироваться в неотслеживаемые каталоги. Если путь не указан, флаг -d рекурсивно очистит файлы во всех каталогах.

-f

--force

Если переменная конфигурации Git clean.requireforce не имеет значения false, git clean откажется удалять файлы или каталоги, если не указано -f или -i. Git откажется изменять неотслеживаемые вложенные репозитории, если не указано второе -f.

-n

–dry-run

Опция -n ничего не удалит, это просто пробный запуск, который покажет, что будет сделано.

-X

Удаляет файлы, игнорируемые Git.

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

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


$ git clean -n -d

Приведённая выше команда выведет список всех файлов и каталогов, которые не отслеживаются.

Вывод

Would remove file2.txt
Would remove js/
Would remove test.txt

Удаляем файлы с помощью опции -f

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

$ git clean -f

Хотите удалить только неотслеживаемые файлы в определенном подкаталоге вашего проекта, тогда укажите путь к этому подкаталогу.

$ git clean -f folder/subfolder

Команда git clean по умолчанию не удаляет каталоги. Хотите удалить каталоги, передайте флаг -d.

$ git clean -fd

В некоторых случаях, если хотите удалить какие-либо игнорируемые файлы, передавайте флаг -x.


$ git clean -fx

Ответить