Отменить "git добавить <dir>"?

Я ошибочно добавил файлы, используя команду "git add dir". Я еще не запускал "git commit". Есть ли способ удалить этот каталог и все, что содержится в нем из коммита?

Я пробовал git reset dir, но это не сработало. По-видимому, git reset file - это способ его отменить. Но у меня так много файлов и так мало времени.

Ответ 1

Чтобы удалить каталог и все, что внутри него, из индекса,

git rm --cached -r dir

Переключатель --cached позволяет git rm работать только с индексом и не прикасаться к рабочей копии. Переключатель -r делает его рекурсивным.

Ответ 2

Вы захотите использовать git rm --cached -r <dir>. эта команда удалит содержимое промежуточного каталога из индекса.

если каталог уже отслежен, вы должны вручную найти новые и старые файлы и удалить их…

Вероятно, после этого запустите git reset <dir>, чтобы сбросить существующие (и уже отслеженные) файлы внутри каталога.


Обновление 2019:

Просто запустите git reset directory, он отключит все вновь добавленные файлы.

Ответ 3

Используйте find и xargs:

find dir -type f | xargs git reset

Ответ 4

$ git reset <dir>

Unstages все файлы и папки, с которыми я поставил:

$ git add <dir>

Сказанное было подтверждено:

$ git status

или же

$ git diff --staged --name-only 

после команды git add, чтобы подтвердить файлы и папки, которые были "Изменения, которые будут приняты".

После запуска команды git reset я использовал:

$git diff --staged --name-only

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