Skip to content
Latchkey

O que é cherry-pick?

O cherry-pick copia as mudanças de um commit específico e as aplica como um novo commit na sua branch atual.

O cherry-pick permite que você pegue um único commit de qualquer ponto do histórico e o reaplique onde você está agora. É a ferramenta ideal quando você precisa de apenas uma mudança, e não de uma branch inteira, em outro lugar, como ao fazer o backport de uma correção para uma release mais antiga.

What cherry-pick does

O cherry-pick pega o diff introduzido por um commit escolhido e o aplica à sua branch atual como um commit totalmente novo, com um novo hash. O commit original permanece onde estava; você está duplicando o efeito dele, não o movendo.

Cherry-picking a commit

Você encontra o commit que deseja e o aplica à branch em que está.

Backporting a fix
git switch release/1.x
git cherry-pick a1b2c3d

When to use it

O cherry-pick brilha ao fazer o backport de uma correção de bug para uma branch de manutenção, ao extrair uma mudança pronta de uma branch inacabada ou ao aplicar um hotfix entre versões. Como ele pode criar commits de aparência duplicada, é melhor usá-lo deliberadamente, em vez de como um método de integração rotineiro.

Cherry-pick in CI/CD

Na manutenção de releases, as equipes muitas vezes fazem cherry-pick de uma correção verificada de main para uma release branch, para que ela seja enviada em um patch sem arrastar mudanças não relacionadas. O CI então valida o commit copiado na release branch, confirmando que a correção se aplica e passa naquele contexto antes de ser lançada.

Cherry-pick tips

  • Use-o para fazer backport de correções únicas para release branches.
  • Espere um novo hash de commit; a mudança é copiada, não movida.
  • Resolva conflitos se a branch de destino diferir significativamente.
  • Deixe o CI reverificar o commit copiado na sua nova branch.

Principais conclusões

  • O cherry-pick copia as mudanças de um commit para a sua branch atual.
  • É ideal para fazer backport de correções e extrair mudanças únicas.
  • O CI reverifica o commit copiado com cherry-pick na sua branch de destino.

Guias relacionados