Установите фильтр-репозиторий:
python3 -m pip install --user git-filter-repo

Перейдите к своему терминалу и выполните:
git filter-repo --analyze (чтобы выполнить анализ вашего репозитория и получить представление о файловых каталогах и больших двоичных объектах с наибольшим размером файла)
git filter-repo --analyze --force
(чтобы перезаписать существующие результаты файлов)
Результаты анализа будут храниться в «.git/filter-repo/analysis»

Чтобы удалить папки из репозитория, включая историю (дерево git переписано):
git filter-repo --path path/to/directoryorfile --invert-pathsэто полностью удалит файл или папку из репозитория git, уменьшив размер репозитория. Эти файлы больше нельзя восстановить через git.

Вместо полного удаления, если вы хотите переместить репозиторий в другой репозиторий git (с историей коммитов), следуйте этому руководству, прежде чем полностью удалить каталог.

filter-repo также удаляет URL-адрес удаленного / восходящего потока из репозитория, это связано с тем, что ваша история git полностью отличается от существующего репозитория, всегда лучше отправить репозиторий в новый репозиторий, а не принудительно вставлять его в существующий репозиторий. Сохраните старый репозиторий для резервного копирования.

Ссылки:
https://github.com/newren/git-filter-repo
https://www.mankier.com/1/git-filter-repo