Squash dos commits que no son secuenciales

Cometí un código, hice algunos cambios y me comprometí nuevamente. Luego hice un estado de git y me di count de que olvidé agregar un file en mi primer commit. Mi logging se ve así:

commit c411e24a9af7599c5021473eff029939f80908ef Date: Sat Jul 9 03:34:47 2016 -0700 Add a networkingucer to track load and rendenetworking state commit c8050c8ec1f7c889b67fabdcd2d6ae1d34017bd2 Date: Sat Jul 9 03:32:57 2016 -0700 Do some other stuff commit 69d719acb16bb21c37eb9ab965801f9295f1e3a3 Date: Sat Jul 9 03:31:52 2016 -0700 Add a networkingucer to track load and rendenetworking state 

Donde c411e24a9af7599c5021473eff029939f80908ef es la confirmación, agregué el file que pretendía agregar en 69d719acb16bb21c37eb9ab965801f9295f1e3a3 .

¿Hay alguna forma de, en código falso: git squash c411e24 69d719a donde fusiona esos dos commits juntos?

Puede usar el command de rebase interactivo: git rebase -i para cambiar el order y aplastar confirmaciones. Solo corre:

 git rebase -i 69d719~ 

Se abrirá un file de text donde puede seleccionar un nuevo order de estos tres commits y decidir qué commits squash. Puede reorderar confirmaciones desde la order c411e2 , c8050c , 69d719 a c8050c , c411e2 , 69d719 y squash 69d719 y c411e2 , todas con un command git.