Удалите все удаленные файлы из "измененных, но не обновленных" в Git
Когда я запускаю git status
, у меня есть куча строк формы
deleted: dir/file.js
Я могу удалить каждый из них индивидуально с помощью git checkout -- dir/file.js
, но для этого должен быть менее кропотливый способ. (И да, я знаю, что я должен был использовать git rm
в первую очередь...)
[ Обновить. Как указано ниже, git checkout --
фактически восстанавливает удаленный файл, тогда как я думал, что он удалил его из индекса git. Я был немного озадачен, потому что когда вы бежите git status
, он говорит:
use "git checkout -- <file>..." to discard changes in working directory
Для меня "отменить изменения" не означает "восстановить удаленный файл", но в терминологии git я предполагаю, что это имеет смысл.]
Ответы
Ответ 1
Как указывает рампинг, вы можете использовать git rm
для установки удаления файлов, которые уже были удалены в вашей рабочей копии (например, просто git rm dir/file.js
в вашем случае.) Если у вас есть много этих файлов в списке как "deleted:" в разделе "Изменено, но не обновлено", я должен сначала проверить, что git ls-files --deleted
создает список этих файлов, и если да, удалите их с помощью:
git ls-files --deleted -z | xargs -0 git rm
Ответ 2
Итак, вы хотите зафиксировать удаление этих файлов?
Затем используйте
git add -u
git commit
Ответ 3
Вы можете по-прежнему git rm
после факта, но если хотите, вы можете восстановить все ваши измененные файлы (включая удаления) до последней версии с помощью git reset --hard