Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git?
2041024 просмотра
30 ответа
Как вы удаляете неотслеживаемые локальные файлы из вашего текущего рабочего дерева?
Автор: Readonly Источник Размещён: 10.06.2019 08:24Ответы (30)
8182 плюса
Согласно документации 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
в вашей конфигурации установлено значение «истина» (по умолчанию), нужно указать, -f
иначе ничего на самом деле не произойдет.
Снова посмотрите git-clean
документы для получения дополнительной информации.
Опции
Автор: Andreas Ericsson Размещён: 15.09.2008 05:32
-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
опцию дважды, если вы действительно хотите удалить такой каталог.
890 плюса
Используйте, git clean -f -d
чтобы убедиться, что каталоги также удалены.
Затем вы можете проверить, действительно ли ушли ваши файлы git status
.
439 плюса
Я удивлен, что никто не упомянул об этом раньше:
git clean -i
Это означает интерактивный, и вы получите быстрый обзор того, что будет удалено, предлагая вам возможность включить / исключить затронутые файлы. В целом, все еще быстрее, чем запуск обязательной --dry-run
перед реальной уборкой.
Вам нужно будет добавить, -d
если вы также хотите позаботиться о пустых папках. В конце концов, это дает хороший псевдоним:
git iclean
Это сказанное, дополнительное удерживание руки интерактивных команд может быть утомительным для опытных пользователей. В эти дни я просто использую уже упомянутыйgit clean -fd
391 плюса
git-clean
- удалить неотслеживаемые файлы из рабочего дерева
221 плюса
Если неотслеживаемый каталог является собственным репозиторием git (например, подмодулем), вам нужно использовать -f
дважды:
git clean -d -f -f
186 плюса
Простой способ удалить неотслеживаемые файлы
Чтобы удалить все неотслеживаемые файлы, простой способ - сначала добавить их все и сбросить репозиторий, как показано ниже.
git add --all
git reset --hard HEAD
Автор: Thanga Размещён: 03.06.2016 12:16
128 плюса
Мне нравится, git stash push -u
потому что вы можете отменить их все git stash pop
.
РЕДАКТИРОВАТЬ: Также я нашел способ показать неотслеживаемый файл в тайнике (например git show stash@{0}^3
) https://stackoverflow.com/a/12681856/338986
EDIT2: git stash save
не рекомендуется в пользу push
. Спасибо @ script-волк.
102 плюса
Это то, что я всегда использую:
git clean -fdx
Для очень большого проекта вы можете запустить его пару раз.
Автор: Oscar Fraxedas Размещён: 25.11.2013 02:1684 плюса
git-clean - это то, что вы ищете. Используется для удаления неотслеживаемых файлов из рабочего дерева.
Автор: Espo Размещён: 14.09.2008 09:0875 плюса
Если необходимо удалить неотслеживаемые файлы из определенного подкаталога,
git clean -f {dir_path}
И комбинированный способ удаления неотслеживаемых dir / files и игнорируемых файлов.
git clean -fxd {dir_path}
после этого вы будете изменять файлы только в git status
.
50 плюса
git clean -fd
удаляет каталог
git clean -fX
удаляет проигнорированные файлы
git clean -fx
удаляет проигнорированные и не проигнорированные файлы
могут быть использованы все вышеперечисленные варианты в комбинации как
git clean -fdXx
проверьте руководство git для получения дополнительной помощи
Автор: Pooja Размещён: 22.01.2015 06:3341 плюса
Удалите все лишние папки и файлы в этом репо + подмодули
Это приводит вас в то же состояние, что и свежий клон.
git clean -ffdx
Удалите все дополнительные папки и файлы в этом репо, но не его подмодули
git clean -fdx
Удалить только лишние папки, но не файлы (например, папка сборки)
git clean -fd
Удалите лишние папки + пропущенные файлы (но не новые файлы)
Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на заглавную X.
git clean -fdX
Новый интерактивный режим
git clean
Автор: Shital Shah
Размещён: 12.02.2017 08:33
38 плюса
ОК, удалить ненужные неотслеживаемые файлы и папки легко git
в командной строке, просто сделайте это так:
git clean -fd
Дважды проверьте, прежде чем делать это, поскольку он будет удалять файлы и папки, не делая истории ...
Также в этом случае -f
означает силу и -d
означает каталог ...
Итак, если вы хотите удалить только файлы, вы можете использовать -f
только:
git clean -f
Если вы хотите удалить (каталоги) и файлы, вы можете удалить только неотслеживаемые каталоги и файлы, например:
git clean -fd
Также вы можете использовать -x
флаг для включения файлов, которые игнорируются git. Это было бы полезно, если вы хотите удалить все.
А добавление -i
флага заставляет git запрашивать разрешение на удаление файлов один за другим на ходу.
Если вы не уверены и хотите сначала проверить, добавьте -n
флаг.
Используйте, -q
если вы не хотите видеть какой-либо отчет после успешного удаления.
Я также создаю изображение ниже, чтобы сделать его более запоминающимся, особенно я видел, как многие люди -f
иногда путают в очистке папки или как-то перепутывают!
33 плюса
Лучше всего использовать git clean
git clean -d -x -f
Это удаляет неотслеживаемые файлы, включая каталоги (-d)
и файлы, которые игнорируются git (-x)
.
Кроме того, замените -f
аргумент, -n
чтобы выполнить интерактивный режим dry-run
или -i
для интерактивного режима, и он скажет вам, что будет удалено.
21 плюса
Пользовательский интерактивный подход:
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 или --dry-run, чтобы просто проверить, что он будет делать.
16 плюса
git clean -f -d -x $(git rev-parse --show-cdup)
применяется clean к корневому каталогу, независимо от того, где вы вызываете его в дереве каталогов репозитория. Я использую его все время, так как он не заставляет вас покидать папку, в которой вы сейчас работаете, и позволяет очищать и фиксировать прямо из того места, где вы находитесь.
Убедитесь , что флаги -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
.
16 плюса
У меня работали только следующие:
git clean -ffdx
Во всех остальных случаях я получал сообщение «Пропуск каталога» для некоторых подкаталогов.
Автор: rahul286 Размещён: 16.08.2016 03:2914 плюса
Lifehack для такой ситуации, которую я только что изобрел и попробовал (это прекрасно работает):
git add .
git reset --hard HEAD
Осторожно! Обязательно передайте все необходимые изменения (даже в неотслеживаемых файлах) перед выполнением этого .
Автор: thybzi Размещён: 21.02.2016 05:2913 плюса
Если вы просто хотите удалить файлы, перечисленные как неотслеживаемые «git status»
git stash save -u
git stash drop "stash@{0}"
Я предпочитаю это «git clean», потому что «git clean» удалит файлы, игнорируемые git, поэтому при следующей сборке вам придется перестраивать все, и вы можете потерять настройки IDE.
Автор: jazzdev Размещён: 02.03.2016 02:0910 плюса
Чтобы узнать, что будет удалено перед фактическим удалением:
git clean -d -n
Это выведет что-то вроде:
Удалил sample.txt
To delete everything listed in the output of the previous command:
git clean -d -f
It will output something like:
Removing sample.txt
Автор: Omar Mowafi Размещён: 16.02.2016 08:428 плюса
To remove the untracked files you should first use command to view the files that will be affected by cleaning
git clean -fdn
This will show you the list of files that will be deleted. Now to actually delete those files use this command:
git clean -fd
Автор: Gaurav
Размещён: 25.10.2016 09:09
6 плюса
Be careful while running `git clean` command.
Always use -n
before running the actual command as it will show you what files would get removed.
git clean -n -d
git clean -f -d
By default, git clean
will only remove untracked files that are not ignored. Any file that matches a pattern in your .gitignore or other ignore files will not be removed. If you want to remove those files too, you can add a -x
to the clean command.
git clean -f -d -x
There is also interactive mode available -i
with the clean command
git clean -x -i
Alternatively
If you are not 100% sure that deleting your uncommitted work is safe, you could use stashing instead
git stash --all
It will also clear your directory but give you flexibility to retrieve the files at any point in time using stash with apply or pop. Then at later point you could clear your stash using:
git stash drop // or clean
Автор: DevWL
Размещён: 21.10.2017 09:44
5 плюса
Normal git clean
command doesn't remove untracked files with my git version 2.9.0.windows.1
.
$ git clean -fdx # doesn't remove untracked files
$ git clean -fdx * # Append star then it works!
Автор: kujiy
Размещён: 11.10.2016 12:14
5 плюса
git clean -f to remove untracked files from working directory.
I have covered some basics here in my blog, git-intro-basic-commands
Автор: ysk Размещён: 16.02.2017 09:055 плюса
uggested Command for Removing Untracked Files from git docs is git clean
git clean - Remove untracked files from the working tree
Предлагаемый метод: использование Интерактивного режима, 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, - интерактивный
Покажите, что будет сделано, и очистите файлы в интерактивном режиме. Подробнее см. «Интерактивный режим».
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. Это может быть полезно для восстановления всего с нуля, но сохраняйте созданные вручную файлы.
Автор: Silent Spectator Размещён: 01.09.2017 06:235 плюса
Мы можем легко удалить локальные неотслеживаемые файлы из текущего рабочего дерева git, используя приведенные ниже комментарии git.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Пример:
git reset --hard HEAD
Ссылки:
- https://git-scm.com/docs/git-reset
- Как мне использовать 'git reset --hard HEAD', чтобы вернуться к предыдущему коммиту?
- Сбросить ветку локального репозитория, чтобы она была похожа на заголовок удаленного репозитория
- https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
3 плюса
Автор: Sergey Размещён: 25.09.2017 04:25Очистить git-репозиторий и все подмодули рекурсивно
Следующая команда рекурсивно очистит текущий репозиторий git и все его подмодули:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
3 плюса
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) для создания первичного рабочего каталога для тестирования чистой сборки .
2 плюса
git clean -f
удалит неотслеживаемые файлы из текущего git
git clean -fd
когда вы хотите удалить каталоги и файлы, это удалит только неотслеживаемые каталоги и файлы
Автор: sudhir Vishwakarma Размещён: 18.05.2018 06:041 плюс
Примечание. Сначала перейдите в каталог и извлеките ветку, которую хотите очистить.
-i
интерактивный режим, и он скажет вам, что будет удалено, и вы можете выбрать действие из списка.
Очистить только файлы [Папки не будут перечислены и не будут очищены]:
$ git clean -i
Для очистки файлов и папок :
$ git clean -d -i
-d
включая каталоги.
Если вы выбираете c
из списка. Файлы / папки будут удалены без отслеживания, а также будут удалены файлы / папки, которые вы испортили. *
Например: если вы реструктурируете папку на своем пульте и вытягиваете изменения на свой локальный компьютер. файлы / папки, созданные другими изначально, будут находиться в прошлой папке и в новой, которую вы реструктурируете.
Автор: Gnanasekar S Размещён: 16.12.2016 03:05Вопросы из категории :
- git Как я могу отменить git reset --hard HEAD ~ 1?
- git Как настроить Git голый доступный по HTTP репозиторий на IIS
- git Как мне отменить неустановленные изменения в Git?
- git Как удалить локальные (неотслеживаемые) файлы из текущего рабочего дерева Git?
- git Как клонировать все удаленные ветки в Git?
- git Частичные коммиты с Subversion
- branch Как мне создать ветку?
- branch Межотраслевое слияние в TFS?
- branch Могу ли я отключить другую ветку в tfs 2008?
- branch Track all remote git branches as local branches
- branch Сделать существующую ветку Git отслеживающей удаленную ветку?
- git-branch Показывает, какие файлы были изменены между двумя ревизиями
- git-branch Default behavior of "git push" without a branch specified
- git-branch Показать только текущую ветку в Git