Вы можете использовать
$ git rm --cached ./whatever1.txt
после того, как что-то уже находится под контролем версии.
На самом деле, если у вас есть "what1.txt" под управлением версией, и вы хотите удалить его из git, но оставить свое рабочее дерево без изменений, тогда просто сделайте это:
$ git rm --cached ./whatever1.txt
$ echo /whatever1.txt >> ${PROJECT_ROOT}/.gitignore
$ git status # this will now show ./whatever1 as "deleted" (from git, not your working tree, and will show gitignore as modified or created)
$ git commit -a
И это все.
Используйте только
$ git rm
когда вы хотите удалить файл из рабочего дерева И из репозитория git.
CAVEAT: Вероятный сценарий, который вы бы использовали, это для удаления специфичных для IDE файлов из git. В этом примере «what1» представляет ваши IDE-файлы, которые вы удаляете. Если вы работаете над проектом с несколькими людьми и помещаете этот набор изменений в общий репозиторий, тогда их файлы «./whwhat1» будут удалены, когда они получат этот набор изменений. Легче всего сделать это для людей на принимающей стороне:
$ git checkout 1215ef -- ./file-you-want-to-restore ./another-file ./another-etc
(где 1215ef представляет последний коммит перед удалением)
Это приводит к восстановлению тех файлов, которые присутствовали при их последнем коммите перед извлечением. После того как они это сделают, эти файлы будут в безопасности и не будут отображаться как незафиксированные, потому что они попадут под исключение gitignore.
Удачи!