Если вы хотите сохранить свою (достижимую) историю коммитов без изменений, тогда истекает срок действия, переупаковывается, удаляется и сборщик мусора:
git reflog expire --expire=0 --all
git repack -ad
git prune
git gc
Это должен быть минимальный размер репо, который вы можете получить и хранить историю коммитов.
Если нет, то есть вы хотите или не возражаете начинать заново с текущего состояния репо в качестве начального коммита, то подход Питера Тиллемана сделает это.