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


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


5670


источник


Ответы:


Согласно документации Git git clean

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


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

git clean -n

Чистый шаг - будьте осторожны: это удалит файлы :

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-cleandocs для получения дополнительной информации.

Опции

-f

--force

Если переменная конфигурации Git clean.requireForce не установлена ​​в false, git clean откажется запускаться, если не указано -f, -n или -i.

-Икс

Не используйте стандартные правила игнорирования, прочитанные из .gitignore (для каждого каталога) и $ GIT_DIR / info / exclude, но все равно используйте правила игнорирования с параметрами -e. Это позволяет удалить все необработанные файлы, включая сборку продуктов. Это можно использовать (возможно, в сочетании с сбросом git), чтобы создать нетронутый рабочий каталог для проверки чистой сборки.

-ИКС

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

-n

--пробный прогон

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

-d

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


7428



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

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


791



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

git clean -i

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

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

git iclean

При этом дополнительное ручное проведение интерактивных команд может утомиться для опытных пользователей. В эти дни я просто использую уже упомянутые git clean -fd


388



git-clean- Удалить необработанные файлы из рабочего дерева


386



If untracked directory is a git repository of its own (e.g. submodule), you need to use -f twice:

git clean -d -f -f


198



Simple Way to remove untracked files

To remove all untracked files, The simple way is to add all of them first and reset the repo as below

git add --all
git reset --hard HEAD


135



I like git stash save -u because you can undo them all with git stash pop.

EDIT: Also I found a way to show untracked file in a stash (e.g. git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986


116



This is what I always use:

git clean -fdx

For a very large project you might want to run it a couple of times.


92



git-clean is what you are looking for. It is used to remove untracked files from the working tree.


82