Inicio·Comandos de terminal

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ónSignificado
-iinteractive: reorder, squash, reword, drop commits
--onto <base>move the range onto a different base
--continuecarry on after fixing a conflict
--abortput the branch back exactly as it was
--skipdrop the commit that will not apply
--autostashstash uncommitted work and put it back afterwards
--autosquashapply fixup!/squash! commits automatically

Ejemplos

git rebase main

replays your commits on top of main, giving them new hashes

git rebase -i HEAD~3

squash or reword the last three commits

git rebase --abort

cancel 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