Rebase
Comando de Git para reorganizar commits y crear un historial lineal. Poderoso pero delicado: usalo en ramas locales antes del PR, nunca en algo que ya compartiste con otros.
Definición
Rebase es un comando de Git que reorganiza el historial de commits moviendo o combinando una secuencia de commits sobre la punta de otra rama. A diferencia de merge, el rebase reescribe el historial creando una secuencia lineal de commits que facilita la lectura del log y evita los commits de fusión. Es una herramienta poderosa que debe usarse exclusivamente en ramas locales que no hayan sido compartidas con otros desarrolladores para evitar conflictos de historial.
Ejemplos
- • Un desarrollador hace rebase de su rama feature sobre main para integrar los últimos cambios antes de abrir un Pull Request, evitando conflictos grandes al fusionar
- • Con rebase interactivo se combinan 5 commits pequeños de prueba en 1 commit limpio con mensaje descriptivo antes de compartir el trabajo con el equipo
Ejemplo de código
# Rebase básico: actualizar feature-rama con los cambios de main
git checkout feature-rama
git rebase main
# Los commits de feature-rama ahora están sobre la punta de main
# Rebase interactivo: limpiar los últimos 3 commits
git rebase -i HEAD~3
# Se abre un editor con las opciones:
# pick abc123 feat: estructura inicial
# squash def456 feat: corrección menor
# reword 789ghi feat: versión completa
# Guardar y cerrar: Git aplica las operaciones en orden