Como reduzo o tamanho de um repositório Git inchado esmagando de maneira não interativa todos os commits, exceto os mais recentes?

Meu repositório Git tem centenas de gigabytes de dados, digamos, backups SQL, então estou tentando remover confirmações antigas e desatualizadas, porque elas estão tornando tudo maior e mais lento. Eu preciso de uma solução rápida; quanto mais rápido, melhor.

Como faço para esmagar todas as confirmações, exceto as mais recentes, e fazer issosem ter que esmagar manualmente cada um em umrebase interativa? Especificamente, eu não quero ter que usar

git rebase -i --root
Meu repo

Eu tenho estes commits:

A .. B .. C ... ... H .. I .. J .. K .. L

O que eu quero é isso (esmagando tudo no meioA eH para dentroA):

A .. H .. I .. J .. K .. L

Há uma resposta sobre comoesmagar todos os commits, mas quero manter algumas das confirmações mais recentes. Eu não queroesmagar os commits mais recentes ou. (Especialmente, preciso manter os dois primeiros commits contando do topo.)

questionAnswers(3)

yourAnswerToTheQuestion