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

А ошибка была в том, что я сперва добавлял весь проект в git

git add --all

А потом, поняв? что лишние файлы проверять не надо, добавлял файл или папку в .gitignore. Как следствие - если git и переставал следить за теми файлами, которые я добавил в файл, то из индекса он их не удалял. Как известно индекс git - это полная копия файлов + изменения. Вот и получается, что если у вас есть сотня файлов, то git их все скоипрует в индекс.

К тому же, - он будет их игнорировать при последующих коммитах, но при этом он будет о них помнить и каждый раз проверять не случилось ли что с ними.

С этим не надо миритmся. Подобно команде git add. У git есть еще команда rm. Она удаляет файл из индекса.

git rm -rf --cached .
git add .

Удаляем все файлы из индекса. А потом их снова добавляем, но уже с учетом .gitignore

В процессе, он напишет что файлы удалены - не бойтесь (лично я чуть кирпичный завод не открыл). Файлы удаляются только из индекса.

Оставлять комментарии могут только зарегистрированные пользователи