Удалить все удаленные файлы из «изменен, но не обновлен» в Git - PullRequest
22 голосов
/ 03 июля 2010

Когда я запускаю 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 я полагаю, что это имеет смысл.]

Ответы [ 3 ]

37 голосов
/ 03 июля 2010

Как указывает rampion, вы все равно можете использовать git rm для поэтапного удаления файлов, которые уже были удалены в вашей рабочей копии (например, просто git rm dir/file.js в вашем случае.) Если у вас много этих файлов в спискекак "удалено" в разделе "Изменено, но не обновлено", я сначала проверил бы, что git ls-files --deleted создает список этих файлов, и, если это так, удалите их с помощью:

git ls-files --deleted -z | xargs -0 git rm
35 голосов
/ 03 июля 2010

Итак, вы хотите зафиксировать удаление этих файлов?Тогда используйте

git add -u
git commit
1 голос
/ 03 июля 2010

Вы можете все еще git rm после факта, но если хотите, вы можете восстановить все ваши измененные файлы (включая удаления) до последней ревизии с помощью git reset --hard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...