Início·Comandos de terminal

git rebase

git

Uso

git rebase [-i] [--onto <base>] <upstream>

Reaplica seus commits sobre outra base; os hashes mudam, então nunca faça rebase de um branch que outras pessoas já baixaram — ali se usa merge.

Opções comuns

OpçãoSignificado
-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

Exemplos

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

O confuso é que desfazer tem várias formas: mover para onde um branch aponta não é o mesmo que criar um commit que reverte.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que git rebase faz?

Reaplica seus commits sobre outra base; os hashes mudam, então nunca faça rebase de um branch que outras pessoas já baixaram — ali se usa merge.

Q. Como se digita?

git rebase [-i] [--onto <base>] <upstream> — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 7; a lista completa está em man git. Este comando fica em git.

Comandos relacionados

página man: man git-rebase