git rebase
git
Uso
git rebase [-i] [--onto <base>] <upstream>Reaplica tus commits sobre otra base; los hashes cambian, así que nunca rebases una rama que otros ya descargaron: allí se usa merge.
Opciones habituales
| Opción | Significado |
|---|---|
| -i | interactive: reorder, squash, reword, drop commits |
| --onto <base> | move the range onto a different base |
| --continue | carry on after fixing a conflict |
| --abort | put the branch back exactly as it was |
| --skip | drop the commit that will not apply |
| --autostash | stash uncommitted work and put it back afterwards |
| --autosquash | apply fixup!/squash! commits automatically |
Ejemplos
git rebase mainreplays your commits on top of main, giving them new hashes
git rebase -i HEAD~3squash or reword the last three commits
git rebase --abortcancel a rebase and return to the original branch
Lo confuso es que deshacer tiene varias formas: mover a dónde apunta una rama no es lo mismo que añadir un commit que la revierte.
Cómo leerlo
- Los corchetes [ ] marcan una parte que puedes omitir.
- Los puntos suspensivos … indican que puedes poner varios.
- Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.
Preguntas
Q. ¿Qué hace git rebase?
Reaplica tus commits sobre otra base; los hashes cambian, así que nunca rebases una rama que otros ya descargaron: allí se usa merge.
Q. ¿Cómo se escribe?
git rebase [-i] [--onto <base>] <upstream> — los corchetes marcan lo que puedes omitir.
Q. ¿Cuántas opciones vale la pena saber?
Aquí van 7; la lista completa está en man git. Este comando está en git.
Comandos relacionados
página man: man git-rebase