Cómo unir (Squash) mis últimos N commit de Git

Git es un sistema de control de versiones ampliamente utilizado en el desarrollo de software moderno. Se utiliza para realizar un seguimiento de los cambios realizados en un proyecto a lo largo del tiempo. En ocasiones, es posible que desees unir (Squash) tus últimos N commits en Git para mantener un historial de cambios más limpio y fácil de leer. En este artículo, te mostramos cómo hacer eso.
Qué es unir (Squash) los commits de Git
Unir (Squash) los commits de Git es una técnica utilizada para reducir el número de commits en un historial de Git. Básicamente, la idea es tomar varios commits y combinarlos en un solo commit. De esta manera, el historial de Git se vuelve más fácil de leer y más fácil de entender.
¿Cómo unir (Squash) mis últimos N commits de Git?
Sigue los siguientes pasos para unir (Squash) tus últimos N commits de Git:
Paso 1: Identificar el número de commits
Antes de comenzar a unir (Squash) tus commits, debes identificar cuántos commits deseas unir. Si deseas unir los últimos tres commits, por ejemplo, debes asegurarte de que tu rama tenga al menos tres commits.
Para identificar el número de commits, puedes usar el siguiente comando en la terminal:
git log --oneline
Este comando mostrará el historial de commits, cada uno en una sola línea.
Paso 2: Crear una rama temporal
Una vez que sepas cuántos commits deseas unir, crea una nueva rama temporal usando el siguiente comando en la terminal:
git branch temprama
Este comando creará una nueva rama temporal llamada "temprama".
Paso 3: Unir (Squash) los commits
Para unir (Squash) los commits, necesitas usar el siguiente comando en la terminal:
git rebase -i HEAD~N
Reemplaza "N" con el número de commits que deseas unir. Por ejemplo, si deseas unir los últimos tres commits, reemplaza "N" con "3".
Esto abrirá una pantalla con los últimos N commits en orden cronológico inverso. Puedes editar la línea de cada commit en la pantalla para controlar cómo se unen los commits.
Para unir (Squash) los commits, cambia la palabra "pick" en el segundo y siguientes commits a "squash" o "s". Puedes dejar el primer commit como "pick".
Después de hacer tus cambios, guarda y cierra el archivo.
Paso 4: Completar el unir (Squash) de commits
Una vez que hayas guardado y cerrado el archivo, Git combinará los commits en uno solo. Si todo ha ido bien, deberías ver un mensaje que indica que los commits se han fusionado correctamente.
Para completar el proceso de unir (Squash) commits, usa el siguiente comando en la terminal:
git push --force-with-lease
Este comando enviará los cambios a tu repositorio remoto y forzará la actualización de la rama temporal.
Ejemplo de unir (Squash) de commits
Supongamos que tienes un historial de Git que se ve así:
7b5237f Nuevo archivo de documentación 9ac75d2 Corrección de errores en el archivo de documentación c3982e1 Nuevo archivo de funciones 0b247a0 Corrección de errores en el archivo de funciones
Si deseas unir los últimos dos commits, utilizarás el siguiente comando:
git rebase -i HEAD~2
Git abrirá una pantalla que se ve así:
pick c3982e1 Nuevo archivo de funciones pick 0b247a0 Corrección de errores en el archivo de funciones
Para unir (Squash) los commits, cambia la línea del segundo commit para que se vea así:
pick c3982e1 Nuevo archivo de funciones s 0b247a0 Corrección de errores en el archivo de funciones
Después de hacer tus cambios, guarda y cierra el archivo. Git combinará los dos commits en uno solo.
Conclusión
Unir (Squash) los commits en Git es una técnica útil para mantener un historial de Git limpio y fácil de leer. Es importante entender cómo hacerlo correctamente para evitar posibles problemas en tu repositorio.
Si tienes algún problema mientras intentas unir (Squash) tus commits, consulta la documentación de Git o busca ayuda en comunidades de programadores.
Preguntas frecuentes
¿Puedo unir (Squash) commits en una rama principal en lugar de una rama temporal?
Sí, es posible unir (Squash) commits en una rama principal. Sin embargo, una rama temporal es una buena práctica ya que te permite realizar cambios sin afectar la rama principal. Si cometes un error mientras unes (Squash) commits en una rama temporal, puedes simplemente eliminar la rama temporal sin afectar la rama principal.
¿Puedo unir (Squash) más de N commits?
Sí, puedes unir (Squash) tantos commits como desees. Sin embargo, ten en cuenta que unir (Squash) muchos commits puede ser complicado y requerir mucho tiempo y esfuerzo.
¿Cómo puedo verificar si mis commits se han fusionado correctamente?
Puedes verificar si tus commits se han fusionado correctamente usando el siguiente comando en la terminal:
git log
Este comando mostrará el historial de commits y deberías ver el nuevo commit resultante del unir (Squash) N commits.
[nekopost slugs="puedo-mover-la-cabeza-de-regreso-a-la-ubicacion-anterior-en-git,deshacer-el-reinicio-con-bandera-dura,el-origen-remoto-ya-existe-en-git-push-a-un-nuevo-repositorio,como-uso-el-archivo-gitignore,comprometer-el-archivo-eliminado-manualmente-en-git,empuje-a-una-rama-especifica-en-git,obtenga-el-nombre-del-repositorio-de-git-en-algun-repositorio-de-git,cambiar-el-impulso-remoto-de-git-a-predeterminado,fusionar-el-cambio-escondido-con-los-cambios-actuales"]

Deja una respuesta