Aprende cómo reordenar commits de una rama local que no se ha subido aún al repositorio.
Trabajar con Git nos da flexibilidad para estructurar la historia de cambios en nuestro código. A veces, los commits no quedan en el orden ideal: tal vez agregamos un cambio antes de escribir la documentación o corregimos un error en un commit posterior. En estos casos, podemos reordenarlos sin afectar la base del proyecto.
git rebase -i
La herramienta principal para reorganizar commits es git rebase
en modo interactivo. Esto nos permite modificar la historia de la rama local sin afectar a otras ramas o al repositorio remoto (hasta que hagamos un push).
Para comenzar, ejecutamos:
git rebase -i HEAD~N
Donde N
es el número de commits que queremos revisar. Por ejemplo, si queremos reordenar los últimos 4 commits, usamos:
git rebase -i HEAD~4
Git abrirá un editor de texto con una lista similar a esta:
pick abc123 Primer commitpick def456 Segundo commitpick ghi789 Tercer commitpick jkl012 Cuarto commit
Cada línea representa un commit, identificado por su hash. Podemos cambiar el orden simplemente moviendo las líneas arriba o abajo.
Por ejemplo, si queremos que el tercer commit pase a ser el primero, reorganizamos así:
pick ghi789 Tercer commitpick abc123 Primer commitpick def456 Segundo commitpick jkl012 Cuarto commit
Una vez ordenados los commits, guardamos y cerramos el editor. Git aplicará los cambios en el nuevo orden.
Si hay conflictos, Git nos lo indicará. En ese caso, resolvemos los conflictos manualmente, hacemos git rebase --continue
y seguimos hasta completar el proceso.
git branch respaldo
.git log --oneline --graph
antes y después para visualizar los cambios en la historia.Si algo sale mal, podemos abortar el rebase en cualquier momento con:
git rebase --abort
Reordenar commits nos ayuda a mantener una historia de cambios más clara y organizada. Con un poco de práctica, este proceso se vuelve parte natural del flujo de trabajo.