Удаляем проиндексированные файлы из Git репозитория

Допустим, что у вас в Git репозитории есть файлы, которые вы затем добавляете в .gitignore, после чего они всё ещё остаются проиндексированными. Существует простой способ избавиться от них.

Перед тем как начать, убедитесь что все изменения закоммичены, включая сам .gitignore. Затем выполняем команду для полной очистки кэша нашего репозитория.

git rm -r --cached .
  • rm команда удаления
  • -r указывает что мы удаляем рекурсивно
  • –cached указывает, что мы удаляем файлы только из индекса
  • . указывает что будут удалены индексы всех файлов, если вы хотите удалить из индекса конкретный файл, то можете указать только его, например git rm --cached foo.txt

Команда rm является не отменяемой, поэтому если вы хотите просто проверить результат выполнения, то добавьте флаг -n или --dry-run для тестирования.

Теперь индексируем всё по новой. И создаём новый коммит.

git add .
git commit -m ".gitignore fix"

Ура! Репозиторий очищен и готов к новым свершениям!