Удаление файлов без репозитория с помощью git?

101

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

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

Скотт
источник

Ответы:

183

Вы можете использовать git-clean . Эта команда удалит неотслеживаемые файлы / каталоги. По умолчанию он печатает только то, что было бы удалено, без фактического удаления.

Учитывая -fфлаг для удаления файлов и -dфлаг для удаления пустых каталогов:

git clean -df

Также удаление игнорируемых файлов:

git clean -dfx
Лили Баллард
источник
37
Добавьте сюда, -xи все будет так же хорошо, как только что клонированное репо.
Дастин
2
Я думал, он имел в виду удаление файлов из git, а не из самой файловой системы, упс!
Эндрю Маршалл
Сама по себе команда git cleanфактически удалит все неотслеживаемые файлы, за исключением случаев, когда для переменной конфигурации Git clean.requireForce установлено значение true. Если для него установлено значение false, то -ff необходим для очистки директорий
Адам
6
Последние версии git выдадут ошибку без каких-либо параметров; По умолчанию requireForce имеет значение true, поэтому для выполнения сухого выполнения вам нужно -n
Себ
1
отслеживание @Dustin: git clean -ixпокажет вам, что он будет очищать, и предоставит вам меню параметров. Мой любимый.
wcochran