Achatar a história antiga no Git

Eu tenho um projeto git que está em andamento há um tempo e agora quero jogar fora a velha história, digamos do começo aos dois anos atrás. Com jogar fora, quero dizer substituir os muitos commits nesse período por um único commit fazendo o mesmo.

eu chequeigit rebase -i mas isso não remove o outro histórico (completo) que contém todas as confirmações do git.

Aqui uma representação gráfica (d são os changesets):

(base) -> d1 -> d2 -> d3 -> (HEAD)

O que eu quero é:

(base) -> d1,d2 -> d3 -> (HEAD)

Como isso poderia ser feito? Obrigado.

EDITAR

Eu trabalhei com isso

git rebase -i cd1e8c9

sendo cd1e8c9 a revisão inicial (base) do squash. Então eu usei o conserto para juntar as revisões. Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion