Как удалить ненужные локальные файлы из текущего рабочего дерева?
Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git
Ответ 1
Согласно документации Git git clean
Удалить неотслеживаемые файлы из рабочего дерева
Шаг 1 - показать, что будет удалено с помощью опции -n:
# Print out the list of files which will be removed (dry run)
git clean -n
Чистый шаг - будьте осторожны: это приведет к удалению файлов:
# Delete the files from the repository
git clean -f
- Чтобы удалить каталоги, запустите git clean -f -dилиgit clean -fd
- Чтобы удалить проигнорированные файлы, запустите git clean -f -Xилиgit clean -fX
- Чтобы удалить проигнорированные и не проигнорированные файлы, запустите git clean -f -xилиgit clean -fx
Обратите внимание на регистр различий в X для двух последних команд.
Если в вашей конфигурации для clean.requireForce установлено значение "true" (по умолчанию), необходимо указать -f, иначе ничего не произойдет.
Снова смотрите git-clean документы для получения дополнительной информации.
параметры
-f,--forceЕсли переменная конфигурации Git clean.requireForce не установлена в false, git clean не будет запускаться, если не указано
-f,-nили-i.
-xНе используйте стандартные правила игнорирования, прочитанные из .gitignore (согласно каталог) и
$GIT_DIR/info/exclude, но все равно используйте игнорирование правила, заданные с опциями-e. Это позволяет удалить все неотслеживаемые файлы, в том числе строительные продукты. Это может быть использовано (возможно, в сочетании с git reset), чтобы создать нетронутую рабочую директорию, чтобы проверить чистоту строить.
-XУдалите только файлы, игнорируемые Git. Это может быть полезно для восстановления все с нуля, но сохраняйте созданные вручную файлы.
-n,--dry-runНа самом деле ничего не удаляйте, просто покажите, что будет сделано.
-dУдалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если нетронутым каталогом управляет другой Git-репозиторий, он по умолчанию не удаляется. Используйте опцию
-fдважды, если вы действительно хотите удалить такой каталог.
Ответ 2
Используйте git clean -f -d, чтобы убедиться, что каталоги также удалены.
-n, -dry-run
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
-d
Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, по умолчанию он не удаляется. Используйте параметр -f дважды, если вы действительно хотите удалить такой каталог.
Затем вы можете проверить, действительно ли ваши файлы исчезли с git status.
Ответ 3
Я удивлен, что никто не упоминал об этом раньше:
git clean -i
Это означает интерактивность, и вы получите краткий обзор того, что будет удалено, предлагая вам возможность включить/исключить затронутые файлы. В целом, все еще быстрее, чем запуск обязательного --dry-run до реальной очистки.
Вам нужно будет бросить в -d, если вы также захотите позаботиться о пустых папках. В конце он делает хороший псевдоним:
git iclean
Таким образом, дополнительное ручное проведение интерактивных команд может утомиться для опытных пользователей. В эти дни я просто использую уже упомянутый git clean -fd
Ответ 4
Ответ 5
Если untracked-каталог представляет собой собственный хранилище git (например, подмодуль), вам нужно дважды использовать -f:
 git clean -d -f -f
Ответ 6
Простой способ удалить неотслеживаемые файлы
Чтобы удалить все неотслеживаемые файлы, простой способ - сначала добавить их все и сбросить репозиторий, как показано ниже.
git add --all
git reset --hard HEAD
Ответ 7
 Мне нравится git stash push -u потому что вы можете отменить их все с помощью git stash pop.
 РЕДАКТИРОВАТЬ: Также я нашел способ показать неотслеживаемый файл в тайнике (например, git show [email protected]{0}^3) fooobar.com/questions/507/...
 EDIT2: git stash save устарело в пользу push. Спасибо @script-волк.
Ответ 8
Это то, что я всегда использую:
git clean -fdx
Для очень большого проекта вы можете запустить его несколько раз.
Ответ 9
git-clean - это то, что вы ищете. Он используется для удаления необработанных файлов из рабочего дерева.
Ответ 10
Если необходимо удалить неподписанные файлы из определенного подкаталога,
git clean -f {dir_path}
И комбинированный способ удаления невоспроизводимых файлов/файлов и игнорируемых файлов.
git clean -fxd {dir_path}
после этого вы будете модифицировать файлы только в git status.
Ответ 11
 git clean -fd удаляет каталог
 git clean -fX удаляет игнорируемые файлы
 git clean -fX удаляет игнорируемые и не проигнорированные файлы
можно использовать все вышеперечисленные опции в комбинации как
 git clean -fdXx
проверить git руководство для получения дополнительной справки
Ответ 12
Удалите все лишние папки и файлы в этом репо + подмодули
Это приводит вас в то же состояние, что и свежий клон.
git clean -ffdx
Удалите все дополнительные папки и файлы в этом репо, но не его подмодули
git clean -fdx
Удалить только лишние папки, но не файлы (например, папка сборки)
git clean -fd
Удалите лишние папки + пропущенные файлы (но не новые файлы)
Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на заглавную X.
git clean -fdX
Новый интерактивный режим
git clean
Ответ 13
 ОК, удалить ненужные неотслеживаемые файлы и папки легко, используя git в командной строке, просто сделайте это так:
git clean -fd
Дважды проверьте, прежде чем делать это, так как он будет удалять файлы и папки, не делая истории...
 Также в этом случае -f обозначает силу, а -d обозначает каталог...
 Итак, если вы хотите удалить только файлы, вы можете использовать только -f:
git clean -f
Если вы хотите удалить (каталоги) и файлы, вы можете удалить только неотслеживаемые каталоги и файлы, например:
git clean -fd
 Также вы можете использовать флаг -x для включения файлов, которые игнорируются git. Это было бы полезно, если вы хотите удалить все.
 А добавление флага -i заставляет git запрашивать разрешение на удаление файлов один за другим на ходу.
 Если вы не уверены и хотите сначала все проверить, добавьте флаг -n.
 Используйте -q если вы не хотите видеть какой-либо отчет после успешного удаления.
 Я также создаю изображение ниже, чтобы сделать его более запоминающимся, особенно я видел, как многие люди путают -f с очисткой папки или как-то путают!
Ответ 14
Лучше всего использовать: git clean
git clean -d -x -f
Это удаляет ненужные файлы, включая каталоги (-d) и файлы, игнорируемые git (-x).
Также замените аргумент -f на -n, чтобы выполнить интерактивный режим dry-run или -i, и он скажет вам, что будет удалено.
Ответ 15
Пользовательский интерактивный подход:
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/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y
-i для интерактивных 
-f для силы 
-d для каталога 
-x для игнорируемых файлов (добавьте, если требуется) 
 Примечание: Добавить  -n или  - сухим, чтобы просто проверить, что он будет делать.
Ответ 16
 git clean -f -d -x $(git rev-parse --show-cdup) применяется чисто для корневого каталога, независимо от того, где вы вызываете его в дереве каталогов репозитория. Я использую его все время, так как он не заставляет вас покидать папку, в которой вы сейчас работаете, и позволяет очищать и фиксировать право с того места, где вы находитесь.
Убедитесь, что флаги -f, -d, -x соответствуют вашим потребностям:
-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.
-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.
-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.
Существуют и другие флаги, просто выберите git clean --help.
Ответ 17
Для меня только после работы:
git clean -ffdx
Во всех остальных случаях я получал сообщение "Skipping Directory" для некоторых подкаталогов.
Ответ 18
Жизнеспособность для такой ситуации я только что придумал и попробовал (что прекрасно работает):
git add .
git reset --hard HEAD
Ответ 19
Если вы просто хотите удалить файлы, перечисленные как не проверенные 'git status'
git stash save -u
git stash drop "[email protected]{0}"
Я предпочитаю это "git clean", потому что "git clean" удалит файлы игнорируется git, поэтому вашей следующей сборке придется перестроить все и вы также можете потерять настройки IDE.
Ответ 20
Чтобы узнать, что будет удалено до фактического удаления:
 git clean -d -n
Он выведет что-то вроде:
Удалит sample.txt
Чтобы удалить все, перечисленные в выводе предыдущей команды:
 git clean -d -f
Он выведет что-то вроде:
Удаление sample.txt
Ответ 21
Чтобы удалить неиспользуемые файлы, вы должны сначала использовать команду для просмотра файлов, на которые будет влиять очистка
git clean -fdn
Это покажет вам список файлов, которые будут удалены. Теперь, чтобы фактически удалить эти файлы, используйте следующую команду:
git clean -fd
Ответ 22
Кто-то должен действительно упомянуть:
git clean [<options>]
Я прав?
Ответ 23
Будьте осторожны при выполнении команды ` git clean`.
  Всегда используйте -n перед запуском фактической команды, показывая, какие файлы будут удалены.
git clean -n -d 
git clean -f -d
По умолчанию git clean будет удалять только неиспользуемые файлы, которые не игнорируются. Любой файл, который соответствует шаблону в ваших .gitignore или других файлах игнорирования, не будет удален. Если вы хотите также удалить эти файлы, вы можете добавить команду -x в чистую команду.
git clean -f -d -x
Существует также интерактивный режим -i с чистой командой
git clean -x -i
В качестве альтернативы
Если вы не на 100% уверены, что удаление вашей незавершенной работы безопасно, вы можете вместо этого использовать stashing
git stash --all
Он также очистит ваш каталог, но даст вам гибкость для извлечения файлов в любой момент времени с помощью stash с применить или поп. Затем в более позднем пункте вы можете очистить свой тайник, используя:
git stash drop // or clean
Ответ 24
git clean -f to remove untracked files from working directory.
Здесь я рассмотрел некоторые основы в своем блоге, git-intro-basic-команды
Ответ 25
ued Команда Удаление необработанных файлов из git docs git clean
git clean - удалить неработающие файлы из рабочего дерева
  Предлагаемый метод: Режим взаимодействия с помощью git clean -i
поэтому мы можем контролировать его. посмотрим оставшиеся доступные варианты.
Доступные параметры:
git clean 
    -d -f -i -n -q -e -x -X (can use either)
Объяснение:
1. -d
Удалите ненужные каталоги в дополнение к необработанным файлам. Если неподписанный каталог управляется другим хранилищем git, он не удаляется по умолчанию. Используйте параметр -f дважды, если вы действительно хотите удалить такой каталог.
2. -f, --force
Если переменная конфигурации git clean.requireForce не установлена в false, git clean откажется запускаться, если не указано -f, -n или -i.
3. -i, --interactive
Показать, что будет сделано и очистить файлы в интерактивном режиме. Подробнее см. "Интерактивный режим".
4. -n, --dry-run
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
5. -q, --quiet
Будьте спокойны, только сообщайте об ошибках, но не удаляйте файлы.
6. -e, --exclude =
Помимо найденных в .gitignore (для каждого каталога) и $GIT_DIR/info/exclude, также рассмотрите эти шаблоны в набор действующих правил игнорирования.
7. -x
Не используйте стандартные правила игнорирования, считанные из .gitignore (для каждого каталога) и $GIT_DIR/info/exclude, но все равно используйте игнорирование правила, заданные с параметрами -e. Это позволяет удалить все необработанные файлы, включая сборку продуктов. Это можно использовать (возможно, в совместно с git reset), чтобы создать нетронутый рабочий каталог для проверки чистой сборки.
8. -X
Удалить только файлы, игнорируемые Git. Это может быть полезно для восстановления всего с нуля, но сохранить вручную созданные файлы.
Ответ 26
Обычная команда git clean не удаляет неиспользуемые файлы с помощью git version 2.9.0.windows.1.
$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!
Ответ 27
Мы можем легко удалить локальные неотслеживаемые файлы из текущего рабочего дерева git, используя приведенные ниже комментарии git.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Пример:
git reset --hard HEAD
Ссылки:
Ответ 28
Очистить git-репозиторий и все подмодули рекурсивно
Следующая команда рекурсивно очистит текущий репозиторий git и все его подмодули:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
Ответ 29
oh-my-zsh с zsh предоставляет эти отличные псевдонимы через плагин git. Их также можно использовать в bash.
 gclean='git clean -fd' gpristine='git reset --hard && git clean -dfx'
-  gcleanудаляет неотслеживаемые каталоги в дополнение к неотслеживаемым файлам.
-  gpristineжестко сбрасывает локальные изменения, удаляет неотслеживаемые каталоги, неотслеживаемые файлы и не использует стандартные правила игнорирования, считываемые из .gitignore (для каждого каталога) и $ GIT_DIR/info/exclude, но все же использует правила игнорирования, заданные с помощью -e опции. Это позволяет удалить все неотслеживаемые файлы, включая продукты сборки. Это может быть использовано (возможно, в сочетании с git reset) для создания первичного рабочего каталога для тестирования чистой сборки.
Ответ 30
git clean -f
удалит неотслеживаемые файлы из текущего git
git clean -fd
когда вы хотите удалить каталоги и файлы, это приведет к удалению только неотслеживаемых каталогов и файлов

