Отменить «git add <dir>»? - PullRequest
       4

Отменить «git add <dir>»?

162 голосов
/ 09 января 2011

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

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

Ответы [ 4 ]

250 голосов
/ 09 января 2011

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

git rm <strong>--cached -r</strong> dir

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

15 голосов
/ 09 января 2011

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

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

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


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

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

11 голосов
/ 09 января 2011

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

find dir -type f | xargs git reset
5 голосов
/ 24 июля 2018
$ git reset <dir>

Удаление всех файлов и папок, с которыми я установил:

$ git add <dir>

Выше было подтверждено:

$ git status

или

$ git diff --staged --name-only 

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

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

$git diff --staged --name-only

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

...