Cherry Pick en français
Qu'est-ce que le cherry-pick ?
La commande cherry-pick dans Git permet de sélectionner des commits spécifiques d'une branche pour les appliquer à une autre. Cette méthode est particulièrement utile pour extraire des modifications précises sans avoir à fusionner l'ensemble des changements d'une branche.
Syntaxe de la commande
La syntaxe pour utiliser cherry-pick est la suivante :
git cherry-pick
Ici, <commit>
représente le hash du commit, que l'on peut trouver en exécutant la commande git log
. Il existe également plusieurs options que vous pouvez utiliser avec cherry-pick : - --edit
: permet de modifier le message du commit avant de valider les modifications. - --signoff
: ajoute une ligne de signature au message de commit.
Exemple d'utilisation
Prenons un exemple pour illustrer l'utilisation de la commande cherry-pick. Supposons qu'un développeur veuille transférer un commit spécifique, identifié par le SHA e1a75b2
, depuis une branche nommée fonctionnalités
vers une autre appelée ajout-images
.
Le développeur commence par changer de branche :
# Passer à la branche `ajout-images`
git checkout ajout-images
Ensuite, il effectue le cherry-pick du commit :
# Cherry-pick le commit `e1a75b2`
git cherry-pick e1a75b2
Enfin, pour terminer la procédure, le développeur pousse les modifications avec un message de commit approprié :
# Pousser les changements avec un message
git commit -m "Ajout d'images de produits"
Inconvénients du cherry-pick
L'un des inconvénients majeurs de l'utilisation de la commande cherry-pick est qu'elle peut introduire des commits en double dans la branche cible. Dans notre exemple, le commit du développeur aura une entrée distincte dans l'historique, ce qui complique la lecture et la compréhension des modifications par d'autres développeurs. Voici à quoi l'historique des commits pourrait ressembler après l'opération :
commit 896cde0
Author: Jean Dupont
Date: Lun Oct 9 10:30:00 2023 +0200
Ajout d'images de produits
commit e1a75b2
Author: Alice Martin
Date: Lun Oct 9 10:25:00 2023 +0200
Ajout d'images de produits
Stratégies de prévention
Pour éviter la création de commits en double lors de l'utilisation de cherry-pick, on peut utiliser l'option --no-commit
. Cette démarche appliquera les changements dans l'espace de travail sans créer immédiatement un nouveau commit, permettant au développeur d'examiner les modifications avant la validation finale. Voici un exemple :
# Passer à la branche `ajout-images`
git checkout ajout-images
# Cherry-pick le commit `e1a75b2` sans effectuer de commit
# Inspecter les changements effectués par le cherry-pick
git cherry-pick --no-commit e1a75b2
# Vérifier les différences
git diff HEAD
# Committer les changements avec un message personnel
git commit -m "Ajout d'images de produits"
Après cette opération, seul un commit apparaîtra dans l'historique, à savoir celui créé par le développeur.