Avanzadogit
Rebase: Historial Lineal
Aprende a usar rebase para mantener un historial de commits limpio y lineal.
Merge vs Rebase
Merge crea un commit de fusion que preserva la historia completa. Rebase reescribe la historia moviendo los commits al final de otra rama, creando un historial lineal y mas limpio.
Rebase basico
Rebase "replanta" tus commits encima de otra rama, como si hubieras empezado a trabajar desde el ultimo commit de esa rama.
bash
1# Estando en tu feature branch
2git switch feature/dashboard
3
4# Rebase sobre main (traer los ultimos cambios de main)
5git rebase main
6
7# Si hay conflictos, resolver y continuar
8git add .
9git rebase --continue
10
11# O abortar el rebase
12git rebase --abort
13
14# Luego, de vuelta en main
15git switch main
16git merge feature/dashboard # Fast-forward merge, historial limpioInteractive Rebase
El rebase interactivo permite editar, reordenar, combinar (squash) o eliminar commits antes de publicarlos.
bash
1# Rebase interactivo de los ultimos 4 commits
2git rebase -i HEAD~4
3
4# Se abre el editor con las opciones:
5# pick abc123 feat: agregar login
6# pick def456 fix: corregir typo
7# pick ghi789 fix: otro typo
8# pick jkl012 feat: agregar logout
9
10# Cambiar a:
11# pick abc123 feat: agregar login
12# squash def456 fix: corregir typo
13# squash ghi789 fix: otro typo
14# pick jkl012 feat: agregar logout
15
16# Resultado: 2 commits limpios en vez de 4