Cómo aplastar con git rebase -i

Soy bastante nuevo para volver a basar, y definitivamente no he aplastado commits antes.

Mientras estaba registrado en mi sucursal local llamado 'lo que sea', hago un git add y git commit, luego rebase.

Supongo que esta es la forma correcta de volver a establecer la base o al less una forma:

git rebase -i development 

el desarrollo es nuestra twig principal sobre la que rebasamos nuestros compromisos. Cuando hago ese command obtengo: enter image description here

Tengo que desplazarme hacia abajo para ver incluso los últimos commits que intenté rebase en la parte superior de la twig de desarrollo: enter image description here

No estoy seguro de qué hacer en este punto. En este punto, obviamente, he comprometido mis cambios, y luego hice una rebase y entonces ¿hay un command para aplastar y qué aplastar? No quiero aplastar toda la historia de la twig de desarrollo ¿verdad? ¿O es squash algo que haces antes de rebase? Estoy perdido un poco.

Debería poder cambiar la palabra "recoger" por "aplastar" para aplastar la confirmación marcada "aplastar" en la confirmación anterior.

Documentación de Git: Reescribiendo el historial

Un ejemplo:

 $ git log --oneline acb05b3 Some final commit. 4968dbd Fixing an error in commit df89a81. df89a81 Something committed too early. c365eab Another commit... 625889f A commit... 70f29fd The beginning. 

Quiero volver a la base en 3 commits antes de la más reciente:

 $ git rebase -i HEAD~3 

Esto proporciona el siguiente text en un editor de text:

 pick df89a81 Something committed too early. pick 4968dbd Fixing an error in commit df89a81. pick acb05b3 Some final commit. # Rebase c365eab..acb05b3 onto c365eab (3 command(s)) 

Lo cual cambio a esto:

 pick df89a81 Something committed too early. squash 4968dbd Fixing an error in commit df89a81. pick acb05b3 Some final commit. # Rebase c365eab..acb05b3 onto c365eab (3 command(s)) 

Al salir, obtengo otro editor que contiene esto:

 # This is a combination of 2 commits. # The first commit's message is: Something committed too early. # This is the 2nd commit message: Fixing an error in commit df89a81. # Please enter the commit message for your changes. Lines starting # with '#' will be ignonetworking, and an empty message aborts the commit. 

Lo cual cambio a esto:

 # This is a combination of 2 commits. # The first commit's message is: This is the squashed commit. It and everything after it get new commit hashes. # Please enter the commit message for your changes. Lines starting # with '#' will be ignonetworking, and an empty message aborts the commit. 

Ahora si miro mi nueva historia:

 $ git log --oneline 8792fef Some final commit. df775c4 This is the squashed commit. It and everything after it get new commit hashes. c365eab Another commit... 625889f A commit... 70f29fd The beginning.