Ce que fait cherry-pick
git cherry-pick prend un commit d'une branche et l'applique comme un nouveau commit sur la branche actuelle.
L'opération basique
git checkout release/1.4
git cherry-pick <sha>
Cherry-pick de plages
git cherry-pick <sha1> <sha2> <sha3>
git cherry-pick <older>..<newer>
git cherry-pick <older>^..<newer>
Cherry-pick avec conflits
git cherry-pick <sha>
git add <file>
git cherry-pick --continue
git cherry-pick --abort
Enregistrer l'origine dans le message
git cherry-pick -x <sha>
Cherry-pick de merges
git cherry-pick -m 1 <merge-sha>
Cherry-pick versus merge
- Merge - intègre une branche entière; préserve le lien.
- Cherry-pick - copie un commit spécifique; pas de lien.
Le problème de commits dupliqués
git cherry main feature
git rebase --skip
Cherry-picks vides
git cherry-pick --allow-empty <sha>
git cherry-pick --skip
Workflows où cherry-pick brille
- Hotfix de
mainvers une branche release. - Promouvoir un fix d'une branche feature vers
main. - Réappliquer un commit perdu pendant un rebase.
Bonnes pratiques
- Toujours utilisez
-xpour les back-ports. - Référencez le PR ou ticket source.
- Lancez les tests sur la branche destination.