Я использую Git для контроля версий. Теперь я хочу удалить на своем локальном компьютере все файлы в хранилище, которые не отслеживаются.
я могу использовать
git status
перечислить эти файлы, но как я могу удалить их все?
Я использую Git для контроля версий. Теперь я хочу удалить на своем локальном компьютере все файлы в хранилище, которые не отслеживаются.
я могу использовать
git status
перечислить эти файлы, но как я могу удалить их все?
Ответы:
Если у вас есть это в игнорировании, используйте git clean -xf
. Вы можете сделать, git clean -df
но это также удалит неотслеживаемые каталоги. Используйте -n
для пробного прогона.
-xf
удалит и проигнорированные файлы, и это, вероятно, НЕ то, что вы хотите. Используйте -nf
и продолжайте с осторожностью. См: stackoverflow.com/questions/61212/...
Пользовательский интерактивный подход:
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
-i для интерактивного
-f для файла
-d для каталога
Примечание: Добавьте -n или --dry-run, чтобы просто проверить, что он будет делать.
Есть тонкость, о которой стоит упомянуть 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
для этого.