Git Rebase: Qué es y Cómo Usarlo 🚀
📌 ¿Qué es git rebase?
git rebase es un comando en Git que se usa para reaplicar cambios de una rama sobre otra, reescribiendo el historial de commits. Se usa principalmente para mantener un historial limpio y evitar merges innecesarios.
🔄 Diferencia entre git merge y git rebase
Característicagit mergegit rebaseFusión de ramasSí (genera un commit de merge)Sí (reaplica commits)Historial limpioNo (mantiene bifurcaciones)Sí (reescribe el historial)ConflictosPuede haber conflictos en el mergePuede haber conflictos al reaplicar commitsUso recomendadoCuando se necesita un historial detalladoCuando se quiere un historial lineal
📌 Ejemplo Visual:
Antes de merge
A---B---C (main)
\
D---E (feature)
Después de git merge feature en main
A---B---C---M (main)
\ /
D---E (feature)
Después de git rebase main en feature
A---B---C---D'---E' (feature)
🛠️ ¿Cómo usar git rebase?
1️⃣ Rebase interactivo (git rebase -i)
Se usa para modificar, reordenar o combinar commits.
git rebase -i HEAD~3 # Modificar los últimos 3 commits
Opciones en el editor:
pick → Mantener el commit
reword → Editar el mensaje del commit
edit → Modificar el commit
squash → Combinar commits
drop → Eliminar un commit
2️⃣ Rebase sobre otra rama
git checkout feature
git rebase main # Aplica los commits de feature sobre main
3️⃣ Resolver conflictos en rebase
Si hay conflictos, Git pausa el proceso. Debes solucionarlos manualmente:
git add .
git rebase --continue
Si deseas cancelar el rebase:
git rebase --abort
🚀 Cuándo Usar git rebase
✅ Para mantener un historial de commits limpio y lineal.
✅ Antes de fusionar una rama feature en main o develop.
✅ Para actualizar una rama sin crear commits de merge innecesarios.
⚠️ ¡Precaución! No hagas git rebase en ramas compartidas con otros desarrolladores, ya que reescribe el historial.
💡 "Usa git rebase para un historial limpio, pero con cuidado en ramas compartidas." 🚀