Git cherry-pick = copiar UM commit específico de uma branch para outra.
Exemplo concreto:
feature-login: commit de correção de um bug críticomain: quer SÓ essa correção, não a branch inteiragit cherry-pick <commit-hash>Criação do projeto:
mkdir demo-cherry-pick && cd demo-cherry-pick
git init
echo "print('v1')" > app.py
git add . && git commit -m "Versão inicial"
# Criar branch feature
git checkout -b feature-new
echo "print('v2-feature')" > app.py
git add . && git commit -m "Nouvelle fonctionnalité"
echo "print('v2-bugfix')" > app.py
git add . && git commit -m "Fix critique"
# Voltar a main e cherry-pick SÓ o bugfix
git checkout main
git cherry-pick <hash-du-commit-bugfix>Pronto! A correção está em main, sem a funcionalidade.
Situação típica:
feature-branchmain) precisa da correção AGORASolução:
git log --oneline feature-branch # Encontrar o hash da correção
git checkout main
git cherry-pick abc123f # Aplicar SÓ este commit| Comando | Ação |
|---|---|
git cherry-pick <hash> | Copiar um commit |
git cherry-pick <hash1> <hash2> | Copiar vários commits |
git cherry-pick --continue | Continuar depois da resolução de conflito |
git cherry-pick --abort | Anular a operação |
É tudo! Cherry-pick é simples: 1 commit → 1 cópia.