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
Quando usar cherry-picking no Git para evitar merges desnecessários?
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