Pular para o conteúdo principal

Rebase do Git: Um guia para iniciantes sobre controle de versão simplificado

Saiba como usar o Git rebase para manter seu histórico de commits limpo e melhorar a colaboração. Este guia aborda instruções passo a passo, práticas recomendadas e armadilhas comuns que você deve evitar ao fazer o rebase de ramificações no Git.
Actualizado 19 de mar. de 2025  · 8 min de leitura

O controle de versão é um dos aspectos mais importantes do desenvolvimento de software moderno. Ele permite que você acompanhe as alterações, colabore de forma eficiente e mantenha o histórico do código. Entre as várias ferramentas disponíveis, o Git se destaca como um dos sistemas mais usados para gerenciar alterações de código.

Como você descobrirá em nosso Curso de introdução ao Gito Git oferece ramificações para que você trabalhe em diferentes recursos ou correções sem afetar a base de código principal. Embora a ramificação torne o desenvolvimento mais flexível, manter as ramificações organizadas às vezes pode ser um desafio. É aqui queentra o Gitrebase .

Entendendo as ramificações do Git

Conforme exploramos em nosso guia do Git e do GitHubas ramificações permitem que você trabalhe em novos recursos ou correções de bugs independentemente da base de código principal. Eles oferecem um ambiente isolado em que as alterações podem ser feitas sem interromper o trabalho em andamento em outras filiais.

Há vários fluxos de trabalho de ramificação comuns, incluindo:

  • Ramos de recursos: Elas são usadas para desenvolver novas funcionalidades antes de serem mescladas ao ramo principal.
  • Ramificações de lançamento: Eles servem para estabilizar o código antes de uma nova versão.
  • Ramificações de hotfix: Eles são criados para corrigir problemas críticos.

Gerenciar essas ramificações de forma eficaz é fundamental para manter um histórico de código limpo e organizado.

Entendendo as ramificações do Git

O que é o Git Rebase?

O Git rebase é um comando que permite que você mova ou reaplique commits de um branch para outro. Ao contrário da mesclagem, que cria um novo commit combinando alterações de diferentes ramificações, o rebasing aplica as alterações uma a uma na ramificação de destino. Isso resulta em um histórico linear sem commits de mesclagem desnecessários.

Ao fazer o rebase, o Git pega cada commit do ramo de origem e o aplica sobre o commit mais recente no ramo de destino. Isso torna o histórico do commit mais fácil de ler e acompanhar. Falamos mais sobre como ver todo o histórico de commits de um repositório em nosso Guia do Git Diff.

O que é Git rebase?

Por que usar o Git Rebase?

O rebase é útil por vários motivos:

  • Criando um histórico linear de confirmações. Em vez de ter um histórico com vários commits de mesclagem, o rebasing mantém o registro de commits limpo e fácil de entender.
  • Melhorar a colaboração e a revisão de código. Um histórico claro de confirmações ajuda as equipes a revisar as alterações com mais eficiência.
  • Evitar commits de mesclagem desnecessários. Ao fazer o rebase em vez de mesclar, você pode manter as ramificações atualizadas sem sobrecarregar o log de confirmação.

No entanto, o rebase pode ser arriscado, especialmente quando você trabalha em ramificações compartilhadas, pois ele reescreve o histórico de commits e pode causar conflitos ou dificultar o rastreamento das alterações. É melhor evitar o rebase de ramificações públicas e usá-lo com cautela em fluxos de trabalho colaborativos.

Quando usar o Git Rebase

Há alguns casos em que usar o Git rebase é a escolha certa. Exploramos cada um deles em detalhes abaixo: 

Rebaixamento de ramificações de recursos locais

Ao trabalhar em uma ramificação de recurso, é comum atualizá-la com as alterações mais recentes da ramificação principal. O rebasing, que coloca os commits do ramo de recursos sobre o ramo principal mais recente, ajuda a manter um histórico de commits limpo como alternativa à mesclagem.

Manter as ramificações de recursos atualizadas

Quando vários desenvolvedores estão trabalhando no mesmo repositório, a ramificação principal muda com frequência. O rebase ajuda a manter a ramificação do recurso atualizada sem adicionar commits de mesclagem desnecessários.

Rebaixamento na colaboração em equipe

Ao trabalhar em uma equipe, o rebasing pode ajudar a evitar conflitos antes que eles ocorram. Ao rebasear regularmente uma ramificação de recurso na ramificação principal, você pode integrar as alterações de forma incremental, reduzindo o risco de conflitos de mesclagem posteriormente.

Guia passo a passo para o Git Rebase

Nesta seção, vamos orientá-lo no processo de rebase com o Git, fornecendo um guia passo a passo de tudo o que você precisa saber.

Guia passo a passo do Git rebase

Preparando-se para um rebase

Antes de iniciar um rebase, verifique se o diretório de trabalho está limpo. Isso significa confirmar ou armazenar todas as alterações antes de fazer o rebase. 

Rebase do Git com alterações no Unstage

Além disso, verifique se você está no ramo correto executando:

git branch

Obtenção das alterações mais recentes

Antes de fazer o rebase, certifique-se de que o repositório local tenha as alterações mais recentes do repositório remoto:

git fetch origin

Mudança para o ramo de recursos

Mova para a ramificação do recurso que precisa ser reformulada:

git checkout your-feature-branch

Rebaixamento para a ramificação principal

Para aplicar os commits do ramo de recursos sobre o ramo principal mais recente, execute:

git rebase main

O Git reaplicará cada commit do ramo de recursos no ramo principal atualizado.

Aplicando o Git Rebase com sucesso

Quando você executa git rebase main, o Git pega as alterações do ramo principal e as aplica antes dos commits do ramo de recursos. Isso mantém seu histórico limpo e linear. Esse processo repete seus commits no estado mais recente de main, resultando em um histórico linear do projeto sem commits de mesclagem.

Por exemplo, digamos que a ramificação principal tenha os commits A e B. Sua ramificação de recursos divergiu de A e inclui os commits C e D. 

A---B  (main)
 \
  C---D  (feature)

Após git rebase main, sua ramificação de recurso é atualizada para incluir os commits de main, seguidos pelos seus commits:

---B---C'---D'  (feature)

Aqui, C e D são novos commits que representam suas alterações originais, agora baseadas no topo de B.

Resolução de conflitos (se houver)

Se surgirem conflitos durante o rebase, o Git fará uma pausa e permitirá que você os resolva. 

Marque os conflitos como resolvidos quando eles forem corrigidos:

git add .
git rebase --continue

Se necessário, você pode abortar o rebase com:

git rebase --abort

Conclusão do rebase

Após um rebase bem-sucedido, verifique a ramificação e teste o código para garantir que tudo funcione corretamente.

Rebase interativo no Git

Além do rebase comum que você fez na seção anterior, também é possível fazer o rebase interativo. Isso lhe dá mais controle, como você descobrirá a seguir. 

O que é rebase interativo?

Rebase interativo git rebase -i permite que você modifique os commits antes de aplicá-los. Esse modo oferece opções como reordenar, editar, esmagar e remover commits.

Por que usar o rebase interativo?

O rebase interativo é útil para refinar o histórico de commits. Ele ajuda a combinar vários commits, editar mensagens de commit e remover commits desnecessários antes de mesclá-los ao ramo principal.

Usos comuns do rebase interativo

  • Reordenar os commits. Altere a ordem dos commits para tornar o histórico mais claro.
  • Eliminação de vários commits. Combine vários commits pequenos em um commit significativo.
  • Edição de mensagens de confirmação. Modifique as mensagens de confirmação antes de fazer push das alterações. É importante escrever mensagens de confirmação apropriadas para deixar claro o que foi atualizado no código, como mostramos em nosso tutorial GIT Push and Pull. 

Como executar um rebase interativo

Para iniciar um rebase interativo, execute:

git rebase -i HEAD~n

Substitua n pelo número de commits que você deseja modificar. A interface interativa permite que você escolha como lidar com cada commit.

Práticas recomendadas e considerações

Ao fazer o rebase, é importante que você siga algumas práticas recomendadas. Vamos falar sobre alguns deles nesta seção. 

Evitar o rebase de ramificações compartilhadas

Rebaixar uma ramificação na qual outras pessoas estão trabalhando pode causar conflitos e confusão. Se um ramo compartilhado já tiver sido enviado, evite fazer o rebase.

Buscar e refazer o banco de dados regularmente

Manter uma ramificação de recurso atualizada com as alterações mais recentes da ramificação principal ajuda a evitar conflitos e torna a mesclagem mais suave.

Backup antes de fazer o rebase

Como o rebase modifica o histórico de commits, é uma boa prática criar um backup antes de começar. Usar o site git stash ou criar uma ramificação temporária pode evitar a perda acidental de dados.

Armadilhas comuns e como evitá-las

Vamos dar uma olhada em alguns desafios comuns ao fazer o rebase e como evitá-los. 

Rebase acidental de uma filial pública

Rebaixar uma ramificação que já foi compartilhada pode criar conflitos para outros colaboradores. Se isso acontecer, use git reflog para recuperar os commits perdidos.

Dificuldades na resolução de conflitos

Quando ocorrerem conflitos, reserve um tempo para resolvê-los cuidadosamente. O uso de ferramentas como git mergetool pode facilitar o processo.

Perda do histórico de confirmações

Se os commits desaparecerem após um rebase, use git reflog para localizá-los e restaurá-los.

Conclusão

O Git rebase é uma ferramenta poderosa para manter um histórico de commits limpo e melhorar a colaboração. Usando-o corretamente - evitando o rebase de ramificações compartilhadas, buscando atualizações regularmente e fazendo backup das alterações - você pode simplificar o controle de versão e reduzir os conflitos de mesclagem.

Aplique essas técnicas para manter seus repositórios organizados e os fluxos de trabalho eficientes. Você deseja aprofundar sua experiência em Git? Confira nosso Curso de Git Intermediário para descobrir os fundamentos do Git para controle de versão em seus projetos de software e dados.

Perguntas frequentes sobre o Git Rebase

Qual é a diferença entre o Git rebase e o Git merge?

O Git merge cria um novo commit que combina as alterações de duas ramificações, mantendo os dois históricos intactos. O rebase do Git, por outro lado, move os commits de um branch e os aplica sequencialmente em outro, resultando em um histórico de commits linear sem commits de mesclagem adicionais.

Quando devo usar o Git rebase em vez do Git merge?

Use o Git rebase quando você quiser manter um histórico de commits limpo e linear, especialmente para branches de recursos. É particularmente útil antes de mesclar uma ramificação de recurso na ramificação principal para evitar commits de mesclagem desnecessários. No entanto, evite fazer o rebase de ramificações compartilhadas, pois isso pode reescrever o histórico de commits e causar problemas para os colaboradores.

O que acontecerá se eu encontrar conflitos durante um rebase do Git?

Se ocorrer um conflito durante o rebase, o Git fará uma pausa e solicitará que você resolva os conflitos. Você precisa corrigir manualmente os arquivos conflitantes, prepará-los usando o git add . e, em seguida, continuar o rebase com git rebase --continue. Se os conflitos forem muito complexos, você poderá cancelar o rebase com git rebase --abort e começar novamente.

É seguro fazer o rebase de uma ramificação que já foi enviada para um repositório remoto?

Não, o rebase de uma ramificação que foi enviada e compartilhada com outras pessoas pode criar problemas porque reescreve o histórico de commits. Se você precisar fazer o rebase de um branch compartilhado, comunique-se com a sua equipe e use o git push --force-with-lease com cuidado para evitar sobrescrever as alterações de outra pessoa.

Como posso desfazer um rebase do Git se algo der errado?

Se você perceber que um rebase causou problemas, poderá usar o git reflog para encontrar o commit anterior ao rebase e restaurá-lo usando git reset --hard . Outra opção é usar git rebase --abort se o rebase ainda estiver em andamento e não tiver sido concluído.

Temas

Principais cursos de Git

Curso

Introduction to Git

2 hr
17.1K
Discover the fundamentals of Git for version control in your software and data projects.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado
Git

blog

O que é Git? Manual completo do Git

Saiba mais sobre o sistema de controle de versão mais conhecido e por que é uma ferramenta de colaboração indispensável para cientistas de dados e programadores.
Summer Worsley's photo

Summer Worsley

14 min

Tutorial

Tutorial do GitHub e do Git para iniciantes

Um tutorial para iniciantes que demonstra como funciona o controle de versão do Git e por que ele é crucial para projetos de ciência de dados.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Tutorial

Git Rename Branch: Como renomear uma filial local ou remota

Saiba como renomear ramificações locais e remotas do Git usando o terminal ou a interface gráfica do usuário (GUI) de clientes populares como o GitHub.

Tutorial

Git Pull Force: Como substituir uma ramificação local por uma remota

Saiba por que o git pull --force não é a melhor maneira de substituir uma ramificação local pela versão remota e descubra o método adequado usando git fetch e git reset.

Tutorial

Tutorial de push e pull do GIT

Saiba como realizar solicitações Git PUSH e PULL por meio do GitHub Desktop e da linha de comando.

Olivia Smith

13 min

Tutorial

Git Prune: O que é o Git Pruning e como usar o Git Prune

O Git prune é um comando do Git que remove objetos do repositório que não são mais acessíveis a partir de qualquer commit ou branch, ajudando a liberar espaço em disco.
Ver maisVer mais