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.