Отношения с файлом .gitignore
у меня никогда не складывались. Он то работал, то не работал. Иногда приходилось ждать, чтобы git проверил изменения в папке сотен фотографий. Плюс сам индекс этой проверки весил очень и очень много.
А ошибка была в том, что я сперва добавлял весь проект в git
git add --all
А потом, поняв? что лишние файлы проверять не надо, добавлял файл или папку в .gitignore
. Как следствие - если git и переставал следить за теми файлами, которые я добавил в файл, то из индекса он их не удалял. Как известно индекс git - это полная копия файлов + изменения. Вот и получается, что если у вас есть сотня файлов, то git их все скоипрует в индекс.
К тому же, - он будет их игнорировать при последующих коммитах, но при этом он будет о них помнить и каждый раз проверять не случилось ли что с ними.
С этим не надо миритmся. Подобно команде git add
. У git есть еще команда rm. Она удаляет файл из индекса.
git rm -rf --cached . git add .
Удаляем все файлы из индекса. А потом их снова добавляем, но уже с учетом .gitignore
В процессе, он напишет что файлы удалены - не бойтесь (лично я чуть кирпичный завод не открыл). Файлы удаляются только из индекса.