Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git

Как удалить неотслеживаемые локальные файлы из текущего рабочего дерева?

Комментарии к вопросу (9)
Решение

В соответствии с документацией Git git clean

Удаление неотслеживаемых файлов из рабочего дерева


Шаг 1 - показать, что будет удалено, используя опцию -n:

# Print out the list of files which will be removed (dry run)
git clean -n

Clean Step - остерегайтесь: при этом будут удалены файлы:

# 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 (в директории) и *-x`. каталог) и$GIT_DIR/info/exclude, но при этом использовать игнорирование правила, заданные с помощью опций-e`. Это позволяет удалять все неотслеживаемые файлы, включая продукты сборки. Это может быть использовано (возможно, в сочетании с git reset) для создания нетронутого рабочего каталога для тестирования чистой сборки.

-X

Удалять только файлы, игнорируемые Git'ом. Это может быть полезно, чтобы перестроить все с нуля, но сохранить созданные вручную файлы.

-n, --dry-run.

На самом деле ничего не удаляйте, просто покажите, что будет сделано.

-d.

Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, он > не будет удален. не удаляется по умолчанию. Используйте опцию -f дважды, если вы действительно хотите > удалить такой каталог. удалить такой каталог.

Комментарии (15)

Используйте git clean -f -d, чтобы убедиться, что каталоги также удалены.

-n, -dry-run

На самом деле ничего не удаляйте, просто покажите, что будет сделано.

-d

Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, он не будет удален по умолчанию. Используйте опцию -f дважды, если вы действительно хотите удалить такой каталог.

Затем вы можете проверить, действительно ли ваши файлы удалены с помощью git status.

Комментарии (2)

Я удивлен, что никто не упомянул об этом раньше:

git clean -i

Это означает interactive, и вы получите быстрый обзор того, что будет удалено, предлагая вам возможность включить/исключить затронутые файлы. В целом, это все равно быстрее, чем выполнять обязательный --dry-run перед настоящей очисткой.

Вам придется добавить -d, если вы также хотите позаботиться о пустых папках. В конце получается красивый псевдоним:

git iclean

Тем не менее, дополнительные интерактивные команды могут быть утомительны для опытных пользователей. В наши дни я просто использую уже упомянутую git clean -fd.

Комментарии (4)

Если отслеживаются каталог Git-репозиторий своего собственного (например, подмодуль), нужно использовать дважды:

ГИТ чистые -Д -ф-ф

Комментарии (3)

Простой способ, чтобы удалить все неотслеживаемые файлы

Чтобы удалить все неотслеживаемые файлы, простой способ заключается в Добавить все из них го и сброс РЕПО как ниже

git add --all
git reset --hard HEAD

Комментарии (13)

Мне нравится в Git тайник пуш-Щ потому что вы можете отменить их с помощью Git Сташ поп`.

Редактировать: также, я нашел способ, чтобы показать неотслеживаемый файл в заначке (например, ГИТ показать тайник@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2: ГИТ заначку спасать является устаревшим в пользу "толчок". Спасибо @сценария-волк.

Комментарии (4)

Это то, что я всегда использую:

git clean -fdx

Для очень большого проекта, который вы, возможно, захотите, чтобы запустить его пару раз.

Комментарии (4)

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

Комментарии (1)

Если нужно удалить неотслеживаемые файлы из конкретной поддиректории,

git clean -f {dir_path}

И комбинированный способ для удаления игнорируемых директорий/файлов и игнорируемые файлы.

git clean -fxd {dir_path}

после этого вам будут измененные файлы только в состояние ЖКТ.

Комментарии (0)

ГИТ чисто -ФД удаляет каталог

ГИТ чистые -форекс удаляет игнорируемые файлы

ГИТ в чистоте -Форекс удаляет файлы игнорируются и ООН проигнорировали

можно использовать все вышеперечисленные варианты в сочетании как

ГИТ чисто -fdXx

проверьте руководство ГИТ для получения дополнительной помощи

Комментарии (2)

Удалите все лишние папки и файлы в этом РЕПО + подмодули

Это получает вас в таком же состояние, как свежий клон.

git clean -ffdx

Удалите все лишние папки и файлы в РЕПО, но не его подмодули

git clean -fdx

Удалить только дополнительные папки, но не файлы (например. строить папка)

git clean -fd

Удалить лишние папки + игнорируемые файлы (но не все вновь добавленные файлы)

Если файл был'т игнорировать и еще не зарегистрировались, тогда она останется. Обратите внимание на заглавные буквы Х.

git clean -fdX

Новый интерактивный режим

git clean
Комментарии (0)

ОК, удаление нежелательные неотслеживаемые файлы и папки легко, используя ГИТ в командной строке, просто делай так:

git clean -fd

Проверить прежде чем делать это, как это будет удалить файлы и папки без какой-либо истории...

Также в этом случае, обозначает силу и расшифровывается каталог...

Поэтому, если вы хотите удалить только файлы, вы можете использовать всего:

git clean -f

Если вы хотите удалить(папки) и файлы, вы можете удалить только игнорируемых директорий и файлов, как это:

git clean -fd

Кроме того, вы можете использовать -X флаг для включая файлы, игнорируемые git. Это будет полезно, если вы хотите удалить все.

И добавляя флаг, заставляет git прошу у вас разрешения на удаление файлов по одному на ходу.

Если вы не уверены и хотите проверить вещи во-первых, добавьте-Н флаг`.

Использовать опцию -Q, то если вы Don'т хочу видеть отчет после успешного удаления.

Я также создать изображение ниже, чтобы сделать ее более запоминаемой, специально я видел, что многие люди путают -F для очистки папки иногда или как-то смешать его!

<БР>

Комментарии (0)

Лучший способ-использовать команду очистить

git clean -d -x -f

Это удаляет неотслеживаемый файлы, включая каталоги (-д) и файлы, игнорируемыеГИТ (-х)`.

Кроме того, заменить аргумент , С выполнить сухого хода или я для интерактивного режима, и он скажет вам, что будут удалены.

Комментарии (0)

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

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

-я для интерактивного<БР> -F для силы<БР> -D для каталога<БР> -X для игнорируемых файлов(добавить при необходимости)<БР><БР> Примечание: добавить или -- "сухой ход", чтобы просто проверить, что он будет делать.

Комментарии (0)

ГИТ чистые -ф -д -х $(ЖКТ Рэв-синтаксический анализ --шоу-ХДС) относится к корневым каталогом, независимо от того, где вы его называете в хранилище дерево каталогов. Я использую его все время, как он не заставит вас оставить папку, где вы работаете сейчас и позволяет очистить & совершать прямо с того места, где вы находитесь.

Будьте уверены, что флаги , , соответствовать вашим потребностям:

-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.

Есть и другие флаги также доступны, просто проверить ЖКТ почистить помочь.

Комментарии (1)

Для меня только следующие работы:

git clean -ffdx

Во всех остальных случаях, я получаю сообщение "и вприпрыжку каталог и" для некоторых подкаталогах.

Комментарии (2)

Это лайфхак такой ситуации я просто выдумывали и пробовали (это прекрасно работает):

git add .
git reset --hard HEAD

Внимание! Обязательно совершать любые необходимые изменения (даже не неотслеживаемые файлы) перед выполнением этой.

Комментарии (6)

Если вы просто хотите, чтобы удалить файлы, помеченные как неотслеживаемые по 'статус ГИТ'

git stash save -u
git stash drop "stash@{0}"

Я предпочитаю, чтобы это 'мерзавец чистым' потому что 'ГИТ чистый' будет удалить файлы игнорируемые git, поэтому ваш следующей сборке придется восстанавливать все и вы можете потерять настройки IDE.

Комментарии (2)

Чтобы знать, что будут удалены перед удаление:

`ГИТ чистые -д -н -

Он будет выводить что-то вроде:

Будет удалить sample.txt

Чтобы удалить все данные, перечисленные в выводе предыдущей команды:

ГИТ чистые -Д -Ф

Он будет выводить что-то вроде:

Удаление sample.txt

Комментарии (0)