¿Cómo Aplastar Commits en Git?

Aplastar commits (squash commits) en Git es un proceso que te permite combinar varios commits en uno solo. Esto es útil para simplificar el historial de tu repositorio, especialmente antes de fusionar una rama en la rama principal. Este artículo te guiará a través de los pasos para aplastar commits en Git y te explicará las mejores prácticas para hacerlo de manera efectiva.

Cuándo Aplastar Commits

Los commits se suelen aplastar cuando quieres reducir el número de commits en tu historial, eliminando aquellos que representan pasos intermedios, correcciones rápidas o pruebas. Aplastar commits es una buena práctica cuando estás preparando tu código para ser fusionado, ya que produce un historial más limpio y fácil de entender.

Cómo Aplastar Commits en Git

El método más común para aplastar commits es usando la rebase interactiva.

Paso 1: Inicia la Rebase Interactiva

Navega a la rama donde deseas aplastar los commits y ejecuta:

git rebase -i HEAD~n

Reemplaza n con el número de commits que deseas aplastar. Por ejemplo, si quieres aplastar los últimos 3 commits, usa HEAD~3.

Paso 2: Marca los Commits para Aplastar

Git abrirá un editor de texto con una lista de los últimos n commits. Verás la palabra pick al lado de cada commit. Cambia la palabra pick a squash (o s) en todos los commits que quieras aplastar con el commit anterior.

Paso 3: Guarda y Cierra el Editor

Después de marcar los commits para aplastar, guarda y cierra el editor. Git combinará los commits seleccionados en uno solo.

Paso 4: Edita el Mensaje del Commit

Git te pedirá que edites el mensaje del commit combinado. Puedes conservar el mensaje de uno de los commits o crear un nuevo mensaje que describa todos los cambios. Guarda y cierra el editor para completar el proceso.

Ejemplo:

git rebase -i HEAD~3

Este comando aplasta los últimos 3 commits en uno solo.

Empujar los Cambios después de Aplastar Commits

Después de aplastar commits, necesitarás forzar el empuje de los cambios al repositorio remoto:

git push --force-with-lease

El uso de --force-with-lease es más seguro que --force, ya que protege contra la sobrescritura de cambios hechos por otros.

Mejores Prácticas para Aplastar Commits

  • Aplasta Commits Relevantes: Aplasta commits que no aportan valor individualmente, como correcciones rápidas, pero evita aplastar commits que representan cambios significativos o etapas importantes en el desarrollo.
  • Comunica con Tu Equipo: Si trabajas en equipo, asegúrate de comunicarte con otros desarrolladores antes de aplastar commits, especialmente si ya se han empujado al repositorio remoto.
  • Prueba Después de Aplastar: Siempre ejecuta tus pruebas después de aplastar commits para asegurarte de que el código sigue funcionando como se espera.

Conclusión

Aplastar commits en Git es una técnica útil para mantener un historial de commits limpio y fácil de entender. Al seguir los pasos y mejores prácticas descritos anteriormente, puedes simplificar el historial de tu repositorio y facilitar la revisión y mantenimiento del código.