Entenda o rebase interativo no Git e aprenda a usá-lo corretamente

O rebase interativo no Git permite modificar, reordenar e combinar commits antes de enviá-los para o repositório remoto.

O que é um rebase interativo e como usá-lo?

O rebase interativo no Git permite modificar o histórico de commits antes de enviá-los ao repositório remoto. Ele é útil para organizar commits, remover alterações desnecessárias e melhorar a legibilidade do histórico do projeto.

1. Iniciando um rebase interativo

Para iniciar um rebase interativo nos últimos 5 commits, execute:

git rebase -i HEAD~5

Isso abrirá um editor de texto exibindo os commits recentes com opções para modificá-los.

2. Entendendo as opções do rebase interativo

Ao iniciar um rebase interativo, você verá algo assim:

pick 123abc Adicionando nova funcionalidade
pick 456def Corrigindo bug na API
pick 789ghi Melhorando mensagens de erro

Você pode substituir pick por:

  • reword → Editar a mensagem do commit.
  • edit → Modificar o conteúdo do commit.
  • squash → Combinar commits em um só.
  • drop → Remover um commit do histórico.

3. Aplicando as mudanças no rebase

Após editar os commits e salvar, o Git aplicará as alterações. Se houver conflitos, resolva-os e finalize o rebase com:

git rebase --continue

O rebase interativo é uma ferramenta poderosa para manter um histórico de commits limpo e organizado. Ele é especialmente útil em projetos onde a clareza do histórico é essencial para a colaboração entre desenvolvedores.

Ao contrário do merge, que cria um commit adicional ao unir branches, o rebase reescreve o histórico, garantindo um fluxo de commits mais linear. Isso facilita a revisão de código e evita poluição no histórico com commits desnecessários.

Algumas aplicações:

  • Reestruturar commits antes de enviá-los ao repositório remoto
  • Combinar múltiplos commits pequenos em um único commit significativo
  • Editar mensagens de commits anteriores
  • Remover commits desnecessários do histórico
  • Facilitar a revisão do histórico de commits em projetos colaborativos

Dicas para quem está começando

  • Antes de usar 'git rebase -i', faça backup do repositório para evitar perda de mudanças.
  • Evite reescrever o histórico de commits que já foram enviados ao repositório remoto.
  • Se um rebase falhar, use 'git rebase --abort' para cancelar a operação.
  • Utilize 'squash' para combinar commits relacionados e reduzir o número de commits no histórico.
  • Se precisar alterar apenas a mensagem de um commit, prefira 'reword' em vez de criar um novo commit.

Contribuições de Ricardo Moura

Compartilhe este tutorial: O que é um rebase interativo e como usá-lo

Compartilhe este tutorial

Continue aprendendo:

Como criar e aplicar patches no Git

Patches no Git permitem salvar alterações em arquivos de texto para serem aplicadas posteriormente em outro repositório ou branch.

Tutorial anterior

Como fazer cherry-picking de commits específicos

Cherry-picking no Git permite aplicar um commit específico de outra branch sem precisar mesclar todas as alterações.

Próximo tutorial