Edição Avançada do Histórico do Git: Alterando Commits e Rebase Interativo

Mergulhe em comandos poderosos do Git, como `git commit --amend` e `git rebase -i`, para refinar mensagens de commit, combinar commits (squash) e limpar o histórico do seu projeto.

Dominar o histórico do Git é essencial para manter um repositório limpo e profissional. Às vezes, cometemos erros de digitação, esquecemos de adicionar um arquivo ou simplesmente queremos organizar melhor nossas alterações antes de fazer o push.

Corrigindo o último commit com git commit --amend

O comando --amend é a maneira mais rápida de corrigir o commit mais recente. Ele permite que você altere a mensagem do commit ou adicione arquivos esquecidos.

# Adicione os arquivos esquecidos
git add arquivo_esquecido.txt

# Atualize o commit
git commit --amend -m "Nova mensagem de commit"

Nota: Nunca use --amend em commits que já foram enviados para um repositório compartilhado, pois isso altera o hash do commit e pode causar problemas para outros colaboradores.

Limpando o histórico com git rebase -i

O rebase interativo (-i) é uma ferramenta poderosa que permite reescrever o histórico de commits. Com ele, você pode:

  • Squash: Combinar vários commits em um só.
  • Reword: Alterar mensagens de commits antigos.
  • Drop: Remover commits desnecessários.

Para começar, execute:

git rebase -i HEAD~n

(Onde n é o número de commits que você deseja revisar)

Ao executar o comando, um editor de texto será aberto listando os commits. Basta alterar a palavra pick para o comando desejado (como squash ou reword) e salvar o arquivo.

Conclusão

O uso consciente dessas ferramentas transforma um histórico caótico em uma linha do tempo clara e compreensível. Pratique em um branch de teste antes de aplicar em branches principais!