Как удалить файлы из области размещения git?

Я внес изменения в некоторые из моих файлов в моем локальном репо, а затем я сделал git add -A который, я думаю, добавил слишком много файлов в область подготовки. Как я могу удалить все файлы из области подготовки?

После того, как я это сделаю, я просто сделаю вручную git add "filename",

17 ответов

Вы можете удалить файлы из индекса, используя

git reset HEAD -- path/to/file

Как git addвы можете рекурсивно разархивировать файлы по каталогу и т. д., чтобы разархивировать все сразу, запустите это из корневого каталога вашего репозитория:

git reset HEAD -- .

Также, для дальнейшего использования, вывод git status скажет вам команды, которые вам нужно выполнить для перемещения файлов из одного состояния в другое.

Использование

git reset

удалить все поставленные файлы.

Теперь на 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

Это очень просто:

  1. Чтобы проверить текущий статус любого файла в текущем каталоге, независимо от того, поставлен он или нет:

    git status

  2. Размещение любых файлов:

    git add . для всех файлов в текущем каталоге

    git add <filename> для конкретного файла

  3. Деинсталляция файла:

    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

Вы можете сбросить область подготовки несколькими способами:

  1. Сбросьте 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, который возвращает ваши поэтапные файлы обратно. Осторожно, это приведет к удалению поэтапных и неустановленных изменений.

Другие вопросы по тегам