Если вы случайно закоммитили в GitHub большой файл (более 100 MB), то при попытке отправить изменения получите ошибку:
remote: error: File Архив.zip is 200 MB; this exceeds GitHub's file size limit of 100.00 MB
GitHub не позволяет загружать файлы больше 100 MB, поэтому нам нужно полностью удалить этот файл из истории репозитория. В этой статье мы рассмотрим несколько способов удаления файла из коммита и истории Git.
1. Удаление файла из всех коммитов
Чтобы удалить файл Архив.zip из истории репозитория, выполните команду:
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch Архив.zip" \
--prune-empty --tag-name-filter cat -- --all
Замените Архив.zip на нужное имя файла.
2. Очистка кеша Git
После удаления файла необходимо очистить кеш и переписать историю:
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive
3. Переписывание истории в удалённом репозитории
Теперь отправляем исправленный репозиторий обратно в GitHub:
git push origin --force --all
Если в репозитории есть теги, обновите их:
git push origin --force --tags
4. Добавление файла в .gitignore
Чтобы в будущем избежать повторного добавления больших файлов, добавьте их в .gitignore:
Архив.zip
*.zip
После этого очистите кеш Git:
git rm --cached Архив.zip
git commit -m "Удалён большой файл"
git push origin main
5. Удаление файла только из последнего коммита
Если файл попал только в последний коммит, можно просто отменить его:
git reset HEAD~1
git rm --cached Архив.zip
git commit -m "Удалён большой файл"
git push origin --force
Заключение
Теперь файл полностью удалён из репозитория, а GitHub больше не блокирует загрузку.
- ✅ Удалили файл из истории Git
- ✅ Очистили кеш и отправили исправленный репозиторий
- ✅ Добавили файл в .gitignore, чтобы избежать повторных ошибок