Как вы удаляете неотслеживаемые локальные файлы из вашего текущего рабочего дерева?
git
branch
git-branch
Readonly
источник
источник
git clean
теперь есть интерактивный режим! Смотрите мой ответ на этот другой вопрос : git 1.8.4+git clean
или некоторые варианты ответов ниже, в том числе интерактивную версию, чтобы удалить только отдельные файлы, но интерактивный режим может быть утомительным. Что бы вы ни делали, убедитесь, что вы понимаете, чтоgit clean
будет удалять или использовать,--dry-run
чтобы оно сообщало вам, не удаляя ничего.rm files-to-be-deleted
Ответы:
Шаг 1, чтобы показать, что будет удалено с помощью
-n
опции:Clean Step - будьте осторожны: это удалит файлы :
git clean -f -d
илиgit clean -fd
git clean -f -X
илиgit clean -fX
git clean -f -x
илиgit clean -fx
Обратите внимание на разницу в регистре
X
для двух последних команд.Если
clean.requireForce
в вашей конфигурации установлено значение «истина» (по умолчанию), нужно указать,-f
иначе ничего на самом деле не произойдет.Снова смотрите
git-clean
документы для получения дополнительной информации.источник
git clean -f
работает только в каталоге, где он называется (и подкаталогах). Если вы хотите очистить всю рабочую копию, вам следует вызвать ее в корневой каталог.git clean -f :/
работает так, как будто вы запустили его в корневом каталоге репо. См. Также более поздние ответы, также учитывающие подмодули сgit clean -ffxd :/
Используйте,
git clean -f -d
чтобы убедиться, что каталоги также удалены.На самом деле ничего не удаляйте, просто покажите, что будет сделано.
или
Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, по умолчанию он не удаляется. Используйте эту
-f
опцию дважды, если вы действительно хотите удалить такой каталог.Затем вы можете проверить, действительно ли ушли ваши файлы
git status
.источник
git clean -n -d
git clean -nd
иgit clean -fd
.Я удивлен, что никто не упомянул об этом раньше:
Это означает интерактивный, и вы получите быстрый обзор того, что будет удалено, предлагая вам возможность включить / исключить затронутые файлы. В целом, все еще быстрее, чем запуск обязательной
--dry-run
перед реальной уборкой.Вам нужно будет добавить,
-d
если вы также хотите позаботиться о пустых папках. В конце концов, это дает хороший псевдоним:Это сказанное, дополнительное удерживание руки интерактивных команд может быть утомительным для опытных пользователей. В эти дни я просто использую уже упомянутые
git clean -fd
источник
git clean -i
работает, только если вызывается из корня рабочей копии?git-clean
- удалить неотслеживаемые файлы из рабочего дереваисточник
Если неотслеживаемый каталог является собственным репозиторием git (например, подмодулем), вам нужно использовать
-f
дважды:git clean -d -f -f
источник
Простой способ удалить неотслеживаемые файлы
Чтобы удалить все неотслеживаемые файлы, простой способ - сначала добавить их все и сбросить репозиторий, как показано ниже.
источник
git add --all
наgit add .
. Таким образом, вы можете сделать это более коротким способом в режиме onelinegit add . && git reset --hard HEAD
(будьте очень осторожны с этой командой) .git clean
?git clean
видимо, также удаляет все, что игнорируется. Он просто удалил моюnode_modules
папку. Выполнение этого сначала очистит все файлы, кроме игнорируемых, а затем удалит их, выполнив сброс. Проигнорированные файлы не будут затронуты.git clean -n
любом случае, прежде чем делать реальное удаление (или использоватьgit clean -i
).git clean
удаляет проигнорированные файлы, только если вы используете либо опцию,-x
либо-X
, иначе он просто удаляет неотслеживаемые файлы.Мне нравится,
git stash push -u
потому что вы можете отменить их всеgit stash pop
.РЕДАКТИРОВАТЬ: Также я нашел способ показать неотслеживаемый файл в тайнике (например
git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986EDIT2:
git stash save
устарела в пользуpush
. Спасибо @ script-волк.источник
-u
эквивалентно--include-untracked
. Вы можете найти помощь сgit help stash
.save
Вариант осуждался в пользуpush
, которая делает то же самое , но больше. Вы можете прочитать больше здесь, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952Это то, что я всегда использую:
Для очень большого проекта вы можете запустить его пару раз.
источник
git-clean - это то, что вы ищете. Используется для удаления неотслеживаемых файлов из рабочего дерева.
источник
Если необходимо удалить неотслеживаемые файлы из определенного подкаталога,
И комбинированный способ удаления неотслеживаемых каталогов / файлов и игнорируемых файлов.
после этого вы будете изменять файлы только в
git status
.источник
Удалите все лишние папки и файлы в этом репо + подмодули
Это приводит вас в то же состояние, что и свежий клон.
Удалите все дополнительные папки и файлы в этом репо, но не его подмодули
Удалите лишние папки, но не файлы (например, папку build или logs)
Удалить лишние папки + пропущенные файлы (но не новые добавленные файлы)
Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на заглавную X.
Новый интерактивный режим
источник
git clean -fd
удаляет каталогgit clean -fX
удаляет проигнорированные файлыgit clean -fx
удаляет проигнорированные и не проигнорированные файлымогут быть использованы все вышеперечисленные варианты в комбинации как
git clean -fdXx
проверьте руководство git для получения дополнительной помощи
источник
git clean -fdXx
выдает сообщение об ошибке «fatal: -x и -X нельзя использовать вместе» (с использованием git-2.8). Для вашего последнего предложения в вашем ответе, пожалуйста, предоставьте ссылку на руководство git. ПриветствияОК, удалить ненужные неотслеживаемые файлы и папки легко
git
в командной строке, просто сделайте это так:Двойная проверка прежде чем делать это, поскольку он будет удалять файлы и папки, не делая истории ...
Также в этом случае
-f
выступает за силу и-d
означает каталог ...Итак, если вы хотите удалить только файлы, вы можете использовать
-f
только:Если вы хотите удалить (каталоги) и файлы, вы можете удалить только неотслеживаемые каталоги и файлы, например:
Также вы можете использовать
-x
флаг для включения файлов, которые игнорируются git. Это было бы полезно, если вы хотите удалить все.И добавление
-i
флага заставляет git запрашивать разрешение на удаление файлов один за другим на ходу.Если вы не уверены и хотите сначала проверить, добавьте
-n
флаг.использование
-q
если вы не хотите видеть какой-либо отчет после успешного удаления.Я также создаю изображение ниже, чтобы сделать его более запоминающимся, особенно я видел, как многие люди
-f
иногда путают, когда чистят папку, или как-то путают !источник
Лучше всего использовать git clean
Это удаляет неотслеживаемые файлы, включая каталоги
(-d)
и файлы, игнорируемыеgit (-x)
.Кроме того, замените
-f
аргумент,-n
чтобы выполнить интерактивный режимdry-run
или-i
для интерактивного режима, и он скажет вам, что будет удалено.источник
Пользовательский интерактивный подход:
-i для интерактивной
-f для принудительной
-d для директории
-x для игнорируемых файлов (добавьте при необходимости)
Примечание: Добавьте -n или --dry-run, чтобы просто проверить, что он будет делать.
источник
Lifehack для такой ситуации, которую я только что изобрел и попробовал (это прекрасно работает):
Осторожно! Обязательно передайте все необходимые изменения (даже в неотслеживаемых файлах) перед выполнением этого .
источник
git add .
git commit -m 'about to delete'
git reset --hard HEAD~
git add . && git reset --hard HEAD
git add . && git reset --hard
git reset --hard
сбрасывает все незафиксированные изменения, НО НЕ ОБНАРУЖЕННЫЕ ФАЙЛЫ, до состояния последнего коммита. Вот почему нам сначала нужноgit add .
- чтобы все неотслеживаемые файлы были подготовлены (чтобы они тоже сбрасывались)git clean -f -d -x $(git rev-parse --show-cdup)
применяет clean к корневому каталогу, независимо от того, где вы вызываете его в дереве каталогов репозитория. Я использую его все время, так как он не заставляет вас покидать папку, в которой вы сейчас работаете, и позволяет очищать и фиксировать прямо из того места, где вы находитесь.Убедитесь , что флаги
-f
,-d
,-x
соответствовать вашим потребностям:Есть и другие доступные флаги, просто проверьте
git clean --help
.источник
У меня работали только следующие:
Во всех других случаях я получал сообщение «Пропуск каталога» для некоторых подкаталогов.
источник
-x
и просто использовал,git clean -ffd
чтобы избежать стирания файлов в .gitignore.Если вы просто хотите удалить файлы, перечисленные как неотслеживаемые «git status»
Я предпочитаю это «git clean», потому что «git clean» удалит файлы, игнорируемые git, поэтому ваша следующая сборка должна будет перестроить все, и вы также можете потерять настройки IDE.
источник
Чтобы узнать, что будет удалено перед фактическим удалением:
git clean -d -n
Это выведет что-то вроде:
Удалил sample.txt
Чтобы удалить все, что перечислено в выводе предыдущей команды:
git clean -d -f
Это выведет что-то вроде:
Удаление файла sample.txt
источник
Чтобы удалить неотслеживаемые файлы, вы должны сначала использовать команду для просмотра файлов, которые будут затронуты очисткой
Это покажет вам список файлов, которые будут удалены. Теперь, чтобы фактически удалить эти файлы, используйте эту команду:
источник
Будьте внимательны при выполнении команды `git clean`.
Всегда используйте
-n
перед запуском фактической команды, поскольку она покажет вам, какие файлы будут удалены.По умолчанию
git clean
удаляются только неотслеживаемые файлы, которые не игнорируются. Любой файл, который соответствует шаблону в вашем .gitignore или других игнорируемых файлах, не будет удален. Если вы тоже хотите удалить эти файлы, вы можете добавить-x
команду к чистой команде.Существует также интерактивный режим, доступный
-i
с командой cleanальтернативно
Если вы не уверены на 100%, что удаление вашей незафиксированной работы безопасно, вы можете вместо этого использовать копирование
Это также очистит ваш каталог, но даст вам возможность извлекать файлы в любой момент времени, используя stash с apply или pop . Затем на более позднем этапе вы можете очистить свой тайник, используя:
источник
git stash save and type some comment as to what this stash was for
git clean -f to remove untracked files from working directory.
Здесь я рассмотрел некоторые основы в своем блоге, git-intro-basic-команды
источник
Команда для удаления неотслеживаемых файлов из git docs - это git clean
git clean - удаляет неотслеживаемые файлы из рабочего дерева
Предлагаемый метод: использование Интерактивного режима,
git clean -i
чтобы мы могли контролировать его. давайте посмотрим оставшиеся доступные варианты.Доступные Варианты:
Объяснение:
1. -d
Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, по умолчанию он не удаляется. Используйте параметр -f дважды, если вы действительно хотите удалить такой каталог.
2. -f, --force
Если для переменной конфигурации Git clean.requireForce не задано значение false, git clean откажется запускаться, если не указано -f, -n или -i.
3. -i, - интерактивный
Покажите, что будет сделано, и очистите файлы в интерактивном режиме. Подробнее см. «Интерактивный режим».
4. -n, --dry-run
На самом деле ничего не удаляйте, просто покажите, что будет сделано.
5. -q, --quiet
Будьте спокойны, сообщайте только об ошибках, но не о файлах, которые были успешно удалены.
6. -e, --exclude =
В дополнение к тем, которые находятся в .gitignore (для каждого каталога) и в $ GIT_DIR / info / exclude, также следует учитывать, что эти шаблоны входят в набор действующих правил игнорирования.
7.-х
Не используйте стандартные правила игнорирования, считанные из .gitignore (для каждого каталога) и $ GIT_DIR / info / exclude, но все же используйте правила игнорирования, заданные с опциями -e. Это позволяет удалить все неотслеживаемые файлы, включая продукты сборки. Это может быть использовано (возможно, в сочетании с git reset) для создания первичного рабочего каталога для тестирования чистой сборки.
8. -X
Удалите только файлы, игнорируемые Git. Это может быть полезно для восстановления всего с нуля, но сохраняйте созданные вручную файлы.
источник
uggested
но это просто "uggestion
LOLОбычная
git clean
команда не удаляет неотслеживаемые файлы с моейgit version 2.9.0.windows.1
.источник
Мы можем легко удалить локальные неотслеживаемые файлы из текущего рабочего дерева git, используя приведенные ниже комментарии git.
Пример:
Ссылки:
источник
git clean -ffdx
такое решениеисточник
удалит неотслеживаемые файлы из текущего git
когда вы хотите удалить каталоги и файлы, будут удалены только неотслеживаемые каталоги и файлы
источник
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) для создания первичного рабочего каталога для тестирования чистой сборки .источник
bash
. Я отредактировал свой ответ, чтобы отразить это.Мне нравится использовать
git stash
команду, позже вы можете получить спрятанные файлы и изменения.git clean
Это также хороший вариант, но полностью зависит от ваших требований. Вот объяснение git stash и git clean, 7.3 Git Tools - Копирование и очисткаисточник