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.
Syntaxe
| Command | What 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.
| Command | What it does |
|---|---|
git cherry-pick --continue | Reprend après avoir résolu les conflits |
git cherry-pick --abort | Annule et restaure la branche |
git cherry-pick --skip | Ignore le commit actuel |
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.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.