Git Cherry-pick
Última atualização
git cherry-pick copia as alterações de um ou mais commits específicos e as aplica na sua branch atual como novos commits. É assim que você pega uma única correção de outra branch sem mesclar toda aquela branch - útil para fazer backport de um hotfix ou tirar um commit de uma branch de feature.
Experimente estes comandos no terminal playground - um shell real no seu navegador, sem nada para instalar.
Sintaxe
| Command | What it does |
|---|---|
git cherry-pick <hash> | Aplica um commit na branch atual |
git cherry-pick <a> <b> | Aplica vários commits em ordem |
git cherry-pick <a>..<b> | Aplica um intervalo de commits (excluindo a) |
git cherry-pick -n <hash> | Aplica as alterações mas ainda não faz commit |
git cherry-pick -x <hash> | Registra o commit original na mensagem |
Durante um cherry-pick
Se um cherry-pick gerar um conflito, resolva-o e continue.
| Command | What it does |
|---|---|
git cherry-pick --continue | Retoma após resolver os conflitos |
git cherry-pick --abort | Cancela e restaura a branch |
git cherry-pick --skip | Pula o commit atual |
Perguntas frequentes sobre git cherry-pick
O que o git cherry-pick faz?
Ele pega as alterações introduzidas por um commit específico e as aplica na sua branch atual como um commit totalmente novo (com um novo hash). Diferente do merge ou do rebase, ele não traz uma branch inteira - apenas o commit ou os commits que você indicar.
Quando devo usar o cherry-pick?
Use quando precisar de um commit específico em outro lugar - por exemplo, fazer backport de uma correção de bug da
main para uma branch de release, ou extrair um único commit útil de uma branch de feature sem mesclar tudo. Se você quer a branch inteira, use merge ou rebase.Como faço cherry-pick de vários commits?
Liste-os:
git cherry-pick <a> <b> <c> aplica cada um em ordem. Para um intervalo contíguo use git cherry-pick <start>..<end>, que aplica todos os commits depois de start até end inclusive. Adicione <start>^..<end> se quiser incluir o próprio start.E se um cherry-pick causar um conflito?
O Git pausa e marca os arquivos em conflito. Resolva-os, faça
git add dos resultados e então execute git cherry-pick --continue. Para desfazer completamente, use git cherry-pick --abort, que restaura sua branch ao estado anterior ao início do cherry-pick.Posso praticar isso online?
Sim. Abra o terminal playground para executar
git cherry-pick em um shell real no seu navegador - sem nada para instalar. O curso interativo e gratuito de Git da Coddy também cobre como mover commits entre branches passo a passo.