No desenvolvimento de software, é comum precisarmos mover alterações específicas entre diferentes ramos (branches) sem necessariamente realizar um merge completo. É aqui que entra o Git Cherry-pick, uma das ferramentas mais precisas e poderosas no arsenal de um desenvolvedor.
O que é o Cherry-pick? Link para o cabeçalho
O git cherry-pick permite que você selecione um commit específico de qualquer branch e aplique as mudanças introduzidas por ele no topo da sua branch atual. O nome, que traduzido significa “colher cerejas”, descreve perfeitamente a sua função: você escolhe a dedo apenas o “fruto” (o commit) que interessa, ignorando o resto da árvore.
Quando utilizar? Link para o cabeçalho
- Hotfixes: Quando um bug foi corrigido em uma branch de desenvolvimento, mas você precisa dessa correção urgente na branch de produção sem mesclar todo o trabalho incompleto da
dev. - Correção de erros: Se você fez um commit na branch errada por engano, pode “trazer” essa alteração para a branch correta.
- Reversão Seletiva: Quando deseja integrar apenas uma funcionalidade específica de uma branch experimental que não será mesclada integralmente.
Passo a Passo: Aplicando o Cherry-pick Link para o cabeçalho
Imagine um cenário onde você tem a branch-feature e a main. Você deseja trazer um commit de correção (e5f6g7h) para a main.
1. Identifique o commit:
Vá até a branch de origem e liste o histórico:
git checkout feature
git log --oneline
2. Aplique na branch de destino:
Mude para a branch onde deseja aplicar a mudança e execute:
git checkout main
git cherry-pick e5f6g7h
Resolvendo Conflitos: O que fazer quando algo dá errado? Link para o cabeçalho
O cherry-pick pode gerar conflitos caso o código que você está trazendo entre em choque com alterações que já foram feitas na branch de destino. O fluxo para resolver é simples e segue uma lógica parecida com a de um merge comum:
1. Identifique os arquivos: Use git status para ver quais arquivos apresentam problemas (Unmerged paths).
2. Edite manualmente: Abra os arquivos e remova os marcadores do Git (<<<<, ====, >>>>), mantendo apenas o código final desejado.
3. Adicione as correções: Após editar, marque como resolvido:
git add <arquivo>
4. Finalize o processo:
git cherry-pick --continue
```
Dica importante: Se a situação se complicar e você decidir que não quer mais aplicar aquele commit, basta cancelar tudo com: git cherry-pick --abort.
Conclusão Link para o cabeçalho
O cherry-pick é uma ferramenta de precisão. Embora seja extremamente útil, deve ser utilizado com cautela para evitar a criação de um histórico de commits fragmentado ou redundante. Com ele, você ganha controle total sobre o que integrar ao seu código, garantindo mais agilidade e organização no seu fluxo de trabalho.