Как очистить индекс?
Уже задавал вопрос, но ответы не помогли. Есть директория uploads где лежали файлы свыше 100 мб. Забыл добавить папку в гитигнор. Далее делаю:
git add ./server
git commit -m "blabla"
git push
Получаю сообщение об отмене так как файл большой. По глупости удаляю директорию вручную. Дальше:
git reset
Пытаюсь сделать еще один коммит и пуш но опять он грузить большой файл. Потом делаю:
git rm -r --cached ./server
Но и это не помогает. Он пишет что все удалил, но кроме папки из-за которой проблемы:
После всех манипуляций все равно получаю:
Загрузка доходит до 100% и дальше опять ошибка: "файл слишком большой"
Ответы (1 шт):
Нужно удалить файл не только из рабочего каталога, но и из истории коммитов. Сделать это можно, например откатив историю в состоояние до того как большой файл был закоммичен. Если нежелательный коммит последний в текущей ветке, то это можно сделать так:
git reset --soft HEAD^
Если нужно откатить несколько коммитов, то как-то так:
git reset --soft HEAD~3
Или можно откатиться прямо к состоянию ветке в удалённом репозитории:
git reset --soft origin/master
Затем можно сделать git reset, git add и сделать уже корректные коммиты заново.
В качестве альтернативы можно также отредактировать уже сделанные коммиты с помощью git rebase -i или git commit --amend
Cм. подробности в документации git-reset

