37

Я использую Git для контроля версий. Теперь я хочу удалить на своем локальном компьютере все файлы в хранилище, которые не отслеживаются.

я могу использовать

git status

перечислить эти файлы, но как я могу удалить их все?

4 ответа4

52

Если он игнорируется, используйте git clean -xf . Вы можете сделать git clean -df но это также приведет к удалению неотслеживаемых каталогов. Используйте -n для пробного прогона.

См очистки без отслеживания

5
git clean -f
4

Пользовательский интерактивный подход:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-я для интерактива
-f для файла
-d для каталога

Примечание: добавьте -n или --dry-run, чтобы просто проверить, что он будет делать.

3

Есть тонкость, которую стоит упомянуть о git clean -f по отношению к неотслеживаемым файлам и каталогам. Если у вас есть неотслеживаемый каталог, содержащий файлы, которые, тем более, не отслеживаются, то git clean -f НЕ удалит эти неотслеживаемые файлы.

Другими словами, это не всегда тот случай, когда git clean -f удалит все неотслеживаемые файлы. Лучшим объяснением git clean -f является то, что он удаляет все неотслеживаемые файлы, которые не находятся в неотслеживаемых каталогах.

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

Используйте git clean -f -d -n чтобы ДЕЙСТВИТЕЛЬНО увидеть, что вы хотите сделать, чтобы восстановить рабочий каталог в том виде, в котором он был бы без каких-либо неотслеживаемых файлов. Затем используйте git clean -f -d для этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .