Menu
Coddy logo textTech

Git Rebase

Última atualização

git rebase move os commits da sua branch para que sejam reaplicados sobre outra branch, produzindo um histórico reto e linear em vez de um commit de merge. O rebase interativo (-i) vai além, permitindo combinar, reordenar, editar ou descartar commits. Como o rebasing reescreve os commits, faça isso apenas em trabalho que você ainda não compartilhou.

Experimente isso no terminal playground: um shell real no seu navegador, sem nada para instalar.

Sintaxe

CommandWhat it does
git rebase mainReaplica seus commits sobre main
git rebase -i HEAD~3Edita interativamente os últimos 3 commits
git rebase --onto main old newMove um intervalo de commits para main
git rebase --continueRetoma após resolver conflitos
git rebase --abortCancela o rebase e restaura a branch
git pull --rebaseFaz pull e rebase em vez de merge

Palavras-chave do rebase interativo

No editor que o -i abre, altere pick para uma destas.

KeywordWhat it does
pickMantém o commit
rewordMantém o commit e edita sua mensagem
squashFunde no commit anterior e combina as mensagens
fixupFunde, mas descarta esta mensagem
dropRemove o commit por completo

Perguntas frequentes sobre git rebase

O que o git rebase faz?
Ele pega os commits da sua branch atual e os reaplica um a um sobre outra branch, como se você tivesse começado seu trabalho a partir do commit mais recente daquela branch. O resultado é um histórico linear sem commit de merge. Os commits são reescritos (recebem novos hashes) no processo.
O que é o rebase interativo?
git rebase -i <base> abre um editor que lista os commits desde <base>, onde você pode reordená-los, fazer squash de vários em um, fazer reword das mensagens, fazer edit de um commit ou drop para descartá-lo. É a principal ferramenta para limpar uma série bagunçada de commits antes de compartilhá-los.
Qual é a regra de ouro do rebasing?
Nunca faça rebase de commits nos quais outros já basearam seu trabalho, normalmente qualquer coisa enviada para uma branch compartilhada. Como o rebase reescreve os commits, fazer isso obriga todos os outros a reconciliar um histórico divergente. Faça rebase à vontade em commits locais e não enviados; use merge ou revert para os públicos.
Como corrijo ou cancelo um rebase com conflitos?
Quando um rebase para em um conflito, resolva os arquivos, dê git add neles e então execute git rebase --continue. Use git rebase --skip para descartar o commit atual, ou git rebase --abort para cancelar por completo e devolver a branch ao estado anterior ao início do rebase.
Posso praticar isso online?
Sim. Abra o terminal playground para executar git rebase em um shell real no seu navegador, sem nada para instalar. O curso interativo e gratuito de Git da Coddy também cobre o rebasing passo a passo.
Coddy programming languages illustration

Aprenda Git com a Coddy

COMEÇAR