Как удалить файлы из области размещения git?
Я внес изменения в некоторые из моих файлов в моем локальном репо, а затем я сделал git add -A
который, я думаю, добавил слишком много файлов в область подготовки. Как я могу удалить все файлы из области подготовки?
После того, как я это сделаю, я просто сделаю вручную git add "filename"
,
17 ответов
Вы можете удалить файлы из индекса, используя
git reset HEAD -- path/to/file
Как git add
вы можете рекурсивно разархивировать файлы по каталогу и т. д., чтобы разархивировать все сразу, запустите это из корневого каталога вашего репозитория:
git reset HEAD -- .
Также, для дальнейшего использования, вывод git status
скажет вам команды, которые вам нужно выполнить для перемещения файлов из одного состояния в другое.
Теперь на v2.24.0 предлагает
git restore --staged .
чтобы отключить файлы.
Если вы уже зафиксировали кучу нежелательных файлов, вы можете отменить их удаление и указать git пометить их как удаленные (без фактического удаления) с помощью
git rm --cached -r .
--cached
говорит, чтобы удалить пути от постановки и индекса, не удаляя сами файлы и -r
работает с каталогами рекурсивно. Вы можете тогда git add
любые файлы, которые вы хотите отслеживать.
Используйте следующее, чтобы удалить определенный файл из области подготовки:
git restore --staged <individual_file>
Или используйте следующее, чтобы удалить все файлы, которые в настоящее время размещены:
git restore --staged .
В вашем терминале git bash после добавления файлов в промежуточную область вы можете запустить
git status
и команда отобразится для вас над текущими промежуточными файлами:
НАМНОГО УПРОЩЕННЫЙ ОТВЕТ
Ниже приведены команды git, которые могут удалить все файлы из промежуточной области.
git restore --staged .
Или просто вы можете
git restore -S .
ПРИМЕЧАНИЕ. Запустите эти команды из своего проекта
.root directory
и не забудь
.
(точка) в конце!
Чтобы удалить все файлы из области подготовки, используйте -git reset
Чтобы удалить конкретное использование файла -git reset "File path"
Вы могли бы использовать
git reset HEAD
затем добавьте конкретные файлы, которые вы хотите с
git add [directory/]filename
Это очень просто:
Чтобы проверить текущий статус любого файла в текущем каталоге, независимо от того, поставлен он или нет:
git status
Размещение любых файлов:
git add .
для всех файлов в текущем каталогеgit add <filename>
для конкретного файлаДеинсталляция файла:
git restore --staged <filename>
Если нежелательные файлы были добавлены в промежуточную область, но еще не зафиксированы, то простой сброс выполнит свою работу:
$ git reset HEAD file
# Or everything
$ git reset HEAD .
Чтобы удалить только неустановленные изменения в текущем рабочем каталоге, используйте:
git checkout -- .
Как отмечено в других ответах, вы должны использовать git reset
, Это отменит действие git add -A
,
Замечания: git reset
эквивалентно git reset --mixed
который делает это
Сбрасывает индекс, но не рабочее дерево (т. Е. Измененные файлы сохраняются, но не помечаются для фиксации) и сообщает, что не было обновлено. Это действие по умолчанию. [ git reset ]
Использовать
git reset HEAD
Это удалит все файлы из области подготовки.
Используйте "git reset HEAD <file>...
"убрать сцену
пример: отключить все файлы
git reset HEAD .
отключить один файл
git reset HEAD nameFile.txt
Вы можете сбросить область подготовки несколькими способами:
Сбросьте HEAD и добавьте все необходимые файлы для повторной регистрации, как показано ниже:
git reset HEAD ---> removes all files from the staging area git add <files, that are required to be committed> git commit -m "<commit message>" git push
Я испробовал все эти методы, но ни один не работал для меня. Я удалил.git файл используя rm -rf .git
сформировать локальный репозиторий, а затем снова сделал git init
а также git add
и рутинные команды. Это сработало.
Удалить каталог из промежуточной области!git rm --cached <<имя репозитория/каталога>>
если это не работает, используйте тег -f git rm --cached <<repo/имя каталога>> -f
Лучший способ отменить ваш файл, который уже находится в промежуточной области, - это git reset --hard, который возвращает ваши поэтапные файлы обратно. Осторожно, это приведет к удалению поэтапных и неустановленных изменений.