Passo a passo: Como fazer cherry-picking de commits específicos no Git

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

Como fazer cherry-picking de commits específicos?

Cherry-picking no Git permite copiar um commit específico de uma branch para outra, sem trazer todas as mudanças do histórico. Isso é útil quando um commit resolve um problema e precisa ser aplicado em outra branch sem um merge completo.

1. Identificando o commit a ser aplicado

Para listar os commits disponíveis em outra branch, use:

git log --oneline nome-da-branch

Isso exibirá uma lista de commits como:

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

Copie o hash do commit que deseja aplicar.

2. Aplicando um commit específico com cherry-picking

Para aplicar um commit de outra branch, primeiro vá para a branch de destino:

git checkout minha-branch

Depois, use o comando:

git cherry-pick 456def

Isso aplicará apenas esse commit na branch atual.

3. Resolvendo conflitos ao fazer cherry-picking

Se houver conflitos, resolva-os manualmente nos arquivos indicados pelo git status. Depois, finalize a operação com:

git cherry-pick --continue

Caso queira cancelar o cherry-picking e reverter as mudanças:

git cherry-pick --abort

Cherry-picking é uma técnica muito útil em equipes que trabalham com múltiplas branches simultaneamente. Em vez de mesclar todo o código de uma branch, essa abordagem permite selecionar apenas os commits necessários, mantendo o histórico organizado.

Por exemplo, imagine que um bug foi corrigido em uma branch de desenvolvimento, mas essa correção precisa ser aplicada rapidamente na branch de produção. Em vez de fazer um merge completo, que poderia trazer mudanças indesejadas, o cherry-picking permite extrair apenas a correção necessária sem afetar outras partes do código.

Algumas aplicações:

  • Aplicar correções de bug rapidamente em outra branch
  • Selecionar commits específicos sem precisar mesclar todo o histórico
  • Manter o código organizado ao transportar mudanças entre branches
  • Evitar conflitos desnecessários ao mesclar múltiplas features
  • Facilitar a portabilidade de alterações entre versões do projeto

Dicas para quem está começando

  • Use 'git log --oneline' para encontrar o hash do commit antes de aplicar o cherry-picking.
  • Se precisar aplicar múltiplos commits, utilize 'git cherry-pick hash1 hash2'.
  • Ao encontrar conflitos, use 'git status' para identificar os arquivos que precisam de ajuste.
  • Se algo der errado, 'git cherry-pick --abort' cancela a operação e restaura o estado anterior.
  • Evite fazer cherry-picking de commits que dependem de alterações de outros commits para evitar inconsistências.

Contribuições de Tatiane Freitas

Compartilhe este tutorial: Como fazer cherry-picking de commits específicos

Compartilhe este tutorial

Continue aprendendo:

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

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

Tutorial anterior

Como usar git bisect para encontrar um commit com bug

Git bisect é uma ferramenta que usa busca binária para encontrar rapidamente o commit que introduziu um bug em um repositório.

Próximo tutorial