Por qué rebase
Rebase reescribe tu branch para que parezca empezar desde el tip de otro branch, reproduciendo tus commits uno por uno. El resultado es una historia lineal que se lee como una historia.
El rebase básico
git checkout feature/login
git fetch origin
git rebase origin/main
git status
git add <file>
git rebase --continue
Rebase interactivo
git rebase -i HEAD~5
pick 1a2b3c4 Add login form
pick 5d6e7f8 Fix typo
pick 9a0b1c2 Refactor auth helper
pick 3d4e5f6 Add tests
pick 7a8b9c0 Address review feedback
Cambia pick a:
reword- mantener el commit, editar el mensaje.edit- pausar para enmendar.squash- combinar con el commit anterior y fusionar mensajes.fixup- combinar, descartar mensaje.drop- eliminar el commit.- Reordenar líneas para reordenar commits.
La Regla de Oro
Nunca hagas rebase de commits que han sido pushed y consumidos por otros.
Flujo autosquash
git commit --fixup <sha>
git rebase -i --autosquash main
Rerere para conflictos repetidos
git config --global rerere.enabled true