Я внес изменения в некоторые из моих файлов в моем локальном репо, а затем сделал то, git add -A
что, по-моему, добавил слишком много файлов в промежуточную область. Как я могу удалить все файлы из области подготовки?
После того, как я это сделаю, я сделаю это вручную git add "filename"
.
git status
уже говорит вам, что делать, если вы хотите удалить файлы.git add -p
илиgit add --patch
(они одинаковы). Этот флаг позволяет вам в интерактивном режиме выбирать, какие файлы или отдельные изменения вы хотите внести - тогда вы можете получить более детальное представление о том, какую работу вы включаете в коммит.Ответы:
Вы можете удалить файлы из индекса, используя
Также как
git add
вы можете рекурсивно разархивировать файлы по каталогу и т. Д., Чтобы разархивировать все сразу, запустите это из корневого каталога вашего репозитория:Кроме того, для дальнейшего использования в выводе команды
git status
будут указаны команды, которые необходимо выполнить для перемещения файлов из одного состояния в другое.источник
$ git reset HEAD -- .
произвелfatal: Failed to resolve 'HEAD' as a valid ref.
примечание, что я никогда не делал никакой фиксации; это первыйgit add
послеgit init
git reset @
.git reset
?@
является синонимомHEAD
.использование
удалить все поставленные файлы.
источник
git reset HEAD --
или это просто более лаконичный способ выполнения той же операции?HEAD
по умолчанию. Какова цель тех--
в вашемgit reset HEAD --
?git reset HEAD -- .
отличается тем, что сбрасывает только файлы в текущем каталоге и ниже, аgit reset
сбрасывает все файлы в проекте.Если вы уже зафиксировали кучу нежелательных файлов, вы можете отменить их удаление и указать git пометить их как удаленные (без фактического удаления) с помощью
--cached
говорит ему об удалении путей из промежуточной и индексной, не удаляя сами файлы, и-r
рекурсивно работает с каталогами. Вы можете затемgit add
любые файлы, которые вы хотите отслеживать.источник
rm
удаления всех файлов.--cached
действительно, чтобы остановить отслеживание файлов, которые вы уже зафиксировали. Таким образом, файл на самом деле не удален, но Git считает, что это так. Я уточнил это в своем ответе.Вы могли бы использовать
затем добавьте конкретные файлы, которые вы хотите с
источник
git status
скажу вам, рабочий каталог чист - ложь!git clean -df
сделал эту работу, спасибо.git clean -df
удалит файлы навсегда. В UNIX-подобных системах он будет вызываться,unlink()
и ваши удаленные файлы не будут восстановлены.Как отмечено в других ответах, вы должны использовать
git reset
. Это отменит действиеgit add -A
.Примечание:
git reset
эквивалентно тому,git reset --mixed
что делает этоисточник
git reset filenameToNotCommit
Теперь на v2.24.0 предлагает
удалить файлы.
источник
Вы можете сбросить область подготовки несколькими способами:
Сбросьте HEAD и добавьте все необходимые файлы для повторной регистрации, как показано ниже:
источник
Для удаления всех файлов из области подготовки используйте -
git reset
Для удаления конкретного файла используйте -
git reset "File path"
источник
использование
Это удалит все файлы из области подготовки
источник
Если ненужные файлы были добавлены в промежуточную область, но еще не зафиксированы, тогда простой сброс сделает эту работу:
Чтобы удалить только неподключенные изменения в текущем рабочем каталоге, используйте:
источник
Используйте "
git reset HEAD <file>...
", чтобы расшарить файлынапример: удалить все файлы
удалить из файла один файл
источник
Я испробовал все эти методы, но ни один не работал для меня. Я удалил .git файл с помощью
rm -rf .git
образуют локальное хранилище , а затем снова сделалgit init
иgit add
и обычные команды. Это сработало.источник
Лучший способ отменить ваш файл, который уже находится в области подготовки, - это git reset --hard, который возвращает ваши подготовленные файлы обратно. Осторожнее, это удалит поэтапные и неустановленные изменения.
источник
--hard
удаляет их навсегда.