Menu
Coddy logo textTech

Git Cherry-pick

Dernière mise à jour

git cherry-pick copie les modifications d'un ou plusieurs commits spécifiques et les applique sur votre branche actuelle sous forme de nouveaux commits. C'est ainsi que vous récupérez un seul correctif d'une autre branche sans fusionner toute cette branche - utile pour rétroporter un hotfix ou extraire un commit d'une branche de fonctionnalité.

Essayez ces commandes dans le terminal playground - un vrai shell dans votre navigateur, rien à installer.

git cherry-pick copie un commit choisi d'une autre branche et l'applique à votre branche courante.

Syntaxe

CommandWhat it does
git cherry-pick <hash>Applique un commit sur la branche actuelle
git cherry-pick <a> <b>Applique plusieurs commits dans l'ordre
git cherry-pick <a>..<b>Applique une plage de commits (en excluant a)
git cherry-pick -n <hash>Applique les modifications mais ne valide pas encore
git cherry-pick -x <hash>Note le commit d'origine dans le message

Pendant un cherry-pick

Si un cherry-pick provoque un conflit, résolvez-le et continuez.

CommandWhat it does
git cherry-pick --continueReprend après avoir résolu les conflits
git cherry-pick --abortAnnule et restaure la branche
git cherry-pick --skipIgnore le commit actuel

Exemple pas à pas

ÉtapeCommandeRésultat
1git log --oneline hotfixTrouvez le hash du correctif, par exemple a1b2c3d
2git switch mainPlacez-vous sur la branche qui doit recevoir le correctif
3git cherry-pick a1b2c3dApplique le correctif sur main sous forme d'un nouveau commit avec un nouveau hash

FAQ git cherry-pick

Que fait git cherry-pick ?
Il prend les modifications introduites par un commit spécifique et les applique sur votre branche actuelle sous forme d'un tout nouveau commit (avec un nouveau hash). Contrairement à merge ou rebase, il n'apporte pas une branche entière - uniquement le ou les commits que vous nommez.
Quand dois-je utiliser cherry-pick ?
Utilisez-le lorsque vous avez besoin d'un commit précis ailleurs - par exemple, pour rétroporter une correction de bug de main vers une branche de release, ou pour extraire un seul commit utile d'une branche de fonctionnalité sans tout fusionner. Si vous voulez toute la branche, utilisez plutôt merge ou rebase.
Comment faire un cherry-pick de plusieurs commits ?
Listez-les : git cherry-pick <a> <b> <c> applique chacun dans l'ordre. Pour une plage contiguë, utilisez git cherry-pick <start>..<end>, qui applique tous les commits après start jusqu'à end inclus. Ajoutez <start>^..<end> si vous voulez inclure start lui-même.
Que se passe-t-il si un cherry-pick provoque un conflit ?
Git s'interrompt et marque les fichiers en conflit. Résolvez-les, faites git add des résultats, puis exécutez git cherry-pick --continue. Pour tout annuler, utilisez git cherry-pick --abort, qui restaure votre branche à l'état d'avant le début du cherry-pick.
Comment faire un cherry-pick d'un commit d'une autre branche ?
Trouvez le hash du commit avec git log --oneline <other-branch>, placez-vous sur la branche qui doit le recevoir et exécutez git cherry-pick <hash>. Vous pouvez aussi passer un nom de branche, comme dans git cherry-pick feature, ce qui applique le commit situé au sommet de cette branche.
Quelle est la différence entre cherry-pick et merge ?
git merge apporte tous les commits d'une branche et enregistre l'endroit où les historiques se rejoignent. Cherry-pick copie uniquement les commits que vous nommez, sous forme de nouveaux commits, sans lien vers les originaux. Mergez la branche quand vous voulez tout son contenu ; faites un cherry-pick quand vous voulez un ou deux commits.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter git cherry-pick dans un vrai shell dans votre navigateur - rien à installer. Le cours interactif et gratuit de Git de Coddy couvre également le déplacement de commits entre branches étape par étape.
Coddy programming languages illustration

Apprenez Git avec Coddy

COMMENCER