En un repository git, ¿qué hacer con los errores descubiertos en las confirmaciones anteriores?

Me dieron un código sobre el cual hacer el trabajo de desarrollo. Cometí la versión recibida como "A" e hice mi trabajo, guardándolo en confirmaciones "B", "C" y "D".

ABCD 

Fue en este punto que mi trabajo de desarrollo descubrió dos errores en el código original "A". ¿Cuál es la mejor manera de manejar esta situación?

No hay mejores prácticas para este. La solución depende de cómo usted u otros usarán el proyecto.

Una opción es corregir el compromiso "D" (es decir, "E"), pero esto evitará que otros tomen la solución sin sus cambios.

Si no quieres este escenario, puedes volver a cometer "A", arreglar el error en commit A * y finalmente agregar tus commits encima.