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




git удалить файл (20)

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


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

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

git add --all
git reset --hard HEAD

Очистить репозиторий git и все подмодули

Следующая команда очистит текущий репозиторий git и все его подмодули рекурсивно:

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

Будьте осторожны при выполнении команды `git clean`.

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

git clean -n -d 
git clean -f -d

По умолчанию git clean будет удалять только неиспользуемые файлы, которые не игнорируются. Любой файл, соответствующий шаблону в ваших .gitignore или других файлах игнорирования, не будет удален. Если вы хотите также удалить эти файлы, вы можете добавить -x в команду clean.

git clean -f -d -x

Существует также интерактивный режим - -i с чистой командой

git clean -x -i

альтернативно

Если вы не на 100% уверены, что удаление вашей незавершенной работы безопасно, вы можете использовать

git stash --all

Он также очистит ваш каталог, но даст вам гибкость для извлечения файлов в любой момент времени с помощью stash с применением или поп- файлом. Затем в более позднем пункте вы можете очистить свой тайник, используя:

git stash drop // or clean

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), чтобы создать нетронутый рабочий каталог для проверки чистой сборки.

8. -X

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


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

git clean -ffdx

Во всех остальных случаях я получал сообщение «Пропустить каталог» для некоторых подкаталогов.


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

git clean -d -f -f


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

git clean -f {dir_path}

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

git clean -fxd {dir_path}

после этого вы будете модифицировать файлы только в git status .


Жизнеспособность для такой ситуации я только что придумал и попробовал (что прекрасно работает):

git add .
git reset --hard HEAD

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


Лучше всего использовать: git clean

git clean -d -x -f

Это удаляет необработанные файлы, включая каталоги (-d) и файлы, игнорируемые git (-x) .

Кроме того, замените аргумент -f на -n для выполнения dry-run режима или -i для интерактивного режима, и он скажет вам, что будет удалено.


Мне нравится git stash push -u потому что вы можете отменить их всех с помощью git stash pop .

EDIT: Также я нашел способ показать незатребованный файл в тире (например, git show [email protected]{0}^3 ) https://.com/a/12681856/338986

EDIT2: git stash save устарел в пользу push . Спасибо @ script-wolf.


Нормальная команда 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!

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

git clean -fdn

Это покажет вам список файлов, которые будут удалены. Теперь, чтобы фактически удалить эти файлы, используйте следующую команду:

git clean -fd

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

git clean -fdx

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


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

git clean -i

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

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

git iclean

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


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


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 .


git clean -fd удаляет каталог

git clean -fX удаляет игнорируемые файлы

git clean -fx удаляет игнорируемые и не проигнорированные файлы

могут использоваться все вышеперечисленные варианты в комбинации как

git clean -fdXx

проверить руководство git для получения дополнительной справки


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

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, чтобы просто проверить, что он будет делать.


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), чтобы создать нетронутый рабочий каталог для проверки чистой сборки .

Удалите все дополнительные папки и файлы в этом репо + подмодулях

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

git clean -ffdx

Удалите все дополнительные папки и файлы в этом репо, но не его подмодули

git clean -fdx

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

git clean -fd

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

Если файл не был проигнорирован и еще не зарегистрирован, он остается. Обратите внимание на столицу X.

git clean -fdX

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

git clean




git-branch