¿Cuál es la diferencia entre "squash" y "fixup" en Git / Git Extension?

He estado usandoExtensiones Git por un tiempo ahora (¡es increíble!) pero no he encontrado una respuesta simple a lo siguiente:

A veces, al escribir un mensaje de confirmación, un error tipográfico. Mi amigo me mostró cómo solucionarlo de la siguiente manera (en Extensiones Git):

Haga clic con el botón derecho en el commit> Advanced> Fixup commit

Luego simplemente marque la casilla "Modificar" y reescribo mi mensaje y ¡listo! Mi mensaje de confirmación es fijo.

Sin embargo, esta otra opción "Squash commit" ... ¡¿Siempre me he preguntado qué hace ?!

Mi pregunta es:

¿Alguien simplemente me explicaría cuál es la diferencia exacta entreSquash cometer yCompromiso de reparación enExtensiones Git / Git? Se ven un poco como ..."similar" a mi:

Respuestas a la pregunta(4)

Su respuesta a la pregunta