Squash anteriores se compromete conservando SHA1s de confirmaciones más recientes

Tengo un historial de compromiso como este:

f85179d ten 7de4071 nine 5c7a482 eight 9585035 seven b41bffc six d102f05 five 5a28cb9 four 6fc27c9 three 524b0c7 two bb7e6ae one 

Me gustaría aplastar los commits de "uno" a "cinco" en una sola confirmación de modo que se vea así:

 f85179d ten 7de4071 nine 5c7a482 eight 9585035 seven b41bffc six 4tg56y5 Squash five commits into one commit. 

Es importante destacar que quiero mantener los valores de SHA iguales para los commits sin límite. Eso significa que no puedo usar `git rebase –root -i ', porque cambiará todos los hashes.

No es posible reescribir el historial de su repository de git y mantener los identificadores de confirmación de las confirmaciones existentes. Una identificación de confirmación se genera a partir del contenido de una confirmación determinada (incluidos los contenidos del tree de directorys, el autor, el autor del contrato, la date, etc.) , así como la identificación de su principal. Esto significa que si cambia cualquier confirmación en su historial, cada confirmación subsiguiente tendrá una nueva identificación de confirmación.

Para get más detalles sobre el formatting de repositorys git, consulte este documento o este .