Как удалить все изменения из рабочего каталога, включая новые неотслеживаемые файлы. Я знаю, что это git checkout -f
делает, но он не удаляет новые неотслеживаемые файлы, созданные с момента последнего коммита.
У кого-нибудь есть идеи, как это сделать?
git help reset
иgit help clean
Ответы:
Чтобы увидеть, что будет удалено заранее, без фактического удаления, используйте
-n
флаг (это в основном тестовый запуск). Когда вы будете готовы фактически удалить, то удалите-n
флаг:git clean -nfd
источник
git clean -fxd
на самом деле может быть действительно опасно, если вы не знаете, что делаете. Вы можете окончательно удалить некоторые очень важные неотслеживаемые файлы, такие как база данных и т. Д. Будьте осторожны.git clean -f -d
файлы также будут удаляться из игнорируемых папок. Так что все ваши локальные журналы и тому подобное исчезнут. Обычно это не большая проблема, но лучше знать.Самый безопасный метод, который я часто использую:
Синтаксическое объяснение на
/docs/git-clean
странице:-f
(псевдоним:)--force
. Если для переменной конфигурации Git clean.requireForce не задано значение false, git clean откажется от удаления файлов или каталогов, если не указано -f, -n или -i. Git откажется удалять каталоги с подкаталогом или файлом .git, если не указан второй -f.-d
, Удалите неотслеживаемые каталоги в дополнение к неотслеживаемым файлам. Если неотслеживаемый каталог управляется другим Git-репозиторием, по умолчанию он не удаляется. Используйте параметр -f дважды, если вы действительно хотите удалить такой каталог.Как упомянуто в комментариях, может быть предпочтительнее сделать
git clean -nd
пробный прогон и сообщить, что будет удалено перед его фактическим удалением.Ссылка на
git clean
страницу документа: https://git-scm.com/docs/git-cleanисточник
git clean -nd .
перед тем, как на самом деле удалять файлы, используюgit clean -fd .
add -A
+commit -a
+revert head
первый перед темgit clean
. Просмотр каждого удаления просто не подходит для основных сценариев. Кроме того, сухой бег - не серебряная пуля: что если вы что-то упустили или допустили ошибку во время обзора?Для всех неподготовленных файлов используйте:
В
.
конце важно.Вы можете заменить
.
имя подкаталога, чтобы очистить только конкретный подкаталог вашего проекта. Проблема решается именно здесь .источник
src/app/work/filename.js
а именно : и../app/working/test/filename.js
. Просто используяgit checkout -- .
ветку только удалил первый файл ( без начального ../ ). Поэтому мне пришлось перейтиcd ../
во второй каталог, чтобы удалить второй файл с помощью этой команды.Посмотрите на
git clean
команду.источник
git clean -i
и выбрал «чистый» из меню - это, наконец, удалил новые файлы.Следующие работы:
Обратите внимание, что при этом будут отменены как локальные, так и промежуточные локальные изменения. Таким образом, вы должны зафиксировать все, что хотите сохранить, прежде чем запускать эти команды.
Типичный вариант использования: вы переместили много файлов или каталогов, а затем хотите вернуться к исходному состоянию.
Кредиты: https://stackoverflow.com/a/52719/246724
источник
git stash drop
?git add -A .
). Я потерял 30 м, потому что не было совпадения файлов. Спасибо!Вы можете сделать это в два этапа:
git checkout -f
git clean -fd
источник
Я думал , что это было ( предупреждение: следующий будет уничтожить все )
reset
Для отмены изменений.clean
, Чтобы удалить любой неотслеживаемых F Ильз и г irectories.источник
git pull
потом:CONFLICT (content): Merge conflict in...
я только решил это с помощьюgit pull --strategy=ours
Это удалит все неотслеживаемые файлы.
источник
git clean -i
сначала покажет вам элементы, которые будут удалены, и продолжит работу после вашего подтверждения. Я считаю это полезным при работе с важными файлами, которые не следует удалять случайно.Смотрите
git help clean
для получения дополнительной информации, включая некоторые другие полезные опции.источник
Если вы хотите отменить все изменения, вы можете использовать любой из допустимых параметров в псевдониме в
.gitconfig
. Например:Применение:
git discard
источник
Альтернативное решение - зафиксировать изменения, а затем избавиться от этих коммитов. Поначалу это не дает немедленной выгоды, но открывает возможность коммитить порциями и создавать тег git для резервного копирования.
Вы можете сделать это в текущей ветке, например так:
Или вы можете сделать это на отдельной голове. (при условии, что вы начинаете с ветки BRANCHNAME):
Однако обычно я делаю коммиты, а затем называю некоторые или все коммиты как «DISCARD: ...». Затем используйте интерактивную перебазировку, чтобы удалить плохие коммиты и сохранить хорошие.
Это более многословно, но позволяет точно определить, какие изменения вы хотите отменить.
git lol
иgit lola
ярлыки были очень полезны с этим рабочим процессом.источник
Для конкретной папки я использовал:
источник
Это, вероятно, нубский ответ, но: я использую TortoiseGit для Windows, и у него есть хорошая функция под названием REVERT. Итак, что вы делаете, чтобы отменить ваши локальные несжатые не выдвинутые изменения:
источник