Inicio > Cursos > Git y GitHub > Rebase e Historia Lineal
Git y GitHubGit AvanzadoLección 6 de 15

Rebase e Historia Lineal

git rebase reescribe el historial moviendo tus commits encima de otra rama. El resultado visual es un historial lineal, sin los "commits de merge" que crea git merge. Es muy usado en equipos que priorizan un historial limpio y fácil de leer con git log.

La regla de oro del rebase: NUNCA hagas rebase de commits que ya están en un repositorio público compartido. Reescribir historia que otros ya tienen causa conflictos graves. Rebase solo en ramas locales o ramas personales que aún no han sido compartidas con el equipo.

# Situación: tienes commits en feature, main avanzó
# feature: A-B-C (tus commits)
# main:    A-D-E (nuevos commits de otros)

# Rebase: mueve tus commits ENCIMA de main
git switch feature
git rebase main
# Resultado: main tiene A-D-E-B'-C' (commits reescritos)

# Rebase interactivo: reescribir los últimos 3 commits
git rebase -i HEAD~3
# Abre un editor con opciones por commit:
# pick abc1234 primer commit     <- mantener
# squash def5678 segundo commit  <- combinar con anterior
# fixup ghi9012 typo fix         <- combinar (descartar msg)
# reword jkl3456 tercer commit   <- cambiar el mensaje

# Comandos disponibles en rebase interactivo:
# pick    - usar el commit tal cual
# reword  - usar commit pero editar el mensaje
# squash  - combinar con commit anterior (conservar mensajes)
# fixup   - combinar con anterior (descartar este mensaje)
# drop    - eliminar el commit

# Si hay conflictos durante rebase:
git add archivo-resuelto.js
git rebase --continue
# Para cancelar el rebase:
git rebase --abort
Consejo⚠️ Regla de oro: nunca hagas rebase de ramas que otros desarrolladores también usan. Solo haz rebase de tus ramas locales o de ramas privadas que nadie más tiene.
← Stash y RecuperaciónCherry-pick, Reset y Revert →

Practica esta lección

Resuelve los ejercicios del curso de Git y GitHub en la app, gratis y con corrección automática.

Empezar a practicar