Удалить файл из контроля версий git, не удаляя его из файловой системы

13

Как я могу удалить файл из дерева мерзавцев, не удаляя его?

Для git addнеотслеживаемого файла легко включить его в следующий коммит, однако я не могу найти, как удалить файл, чтобы он снова «не отслеживался» другим коммитом.

dronus
источник

Ответы:

19

Легко. Просто используйте git rm --cachedфайл, который вы хотите удалить из кэша управления версиями, но не хотите удалять / удалять из вашей файловой системы. Так что, если вы хотите удалить foo.txtиз системы контроля версий, просто запустите эту команду:

git rm --cached foo.txt

Как объяснено в официальной git-rmдокументации Git :

--cached

Используйте эту опцию, чтобы удалять и удалять пути только из индекса. Файлы рабочего дерева, модифицированные или нет, будут оставлены в покое.

JakeGould
источник
1
Ой ... Я слышал --cachedраньше, но думал, что это удалит файлы из индекса. Благодаря!
Дронус