Illustration de la commande git cherry-pick

Git cherry-pick

git cherry-pick est une commande puissante qui permet de choisir des commits Git arbitraires par référence et de les ajouter au HEAD actuel. Elle correspond au fait de sélectionner un commit d'une branche et de l'appliquer à une autre. La commande git cherry-pick peut être utile pour annuler des changements. Par exemple, supposons qu'un commit soit accidentellement intégré à la mauvaise branche. Vous pouvez passer à la bonne branche, sélectionner le commit et l'insérer à l'endroit où il devrait se trouver.

Quand utiliser git cherry-pick ?

git cherry-pick est un outil utile, mais pas toujours une bonne pratique. La sélection de commits peut entraîner des doublons, et les merges traditionnels lui sont souvent préférés. Ceci dit, la commande git cherry-pick est pratique dans certains cas…

Collaboration entre équipes.

Il arrive souvent que les membres individuels d'une équipe travaillent dans le même code ou autour de celui-ci. Il se peut qu'une nouvelle fonctionnalité du produit comporte un composant back-end et un composant front-end. Il est possible que du code soit partagé entre deux secteurs de produits. Le développeur du back-end peut créer une structure de données que le front-end devra également utiliser. Le développeur du front-end pourrait utiliser la commande git cherry-pick pour sélectionner le commit dans lequel cette hypothétique structure de données serait créée. De la sorte, le développeur du front-end pourrait continuer à avancer dans sa partie du projet.

Hotfix de bug

Lorsqu'un bug est découvert, il est important de fournir une correction aux utilisateurs finaux aussi rapidement que possible. Par exemple, un développeur a commencé à travailler sur une nouvelle fonctionnalité. Au cours du développement de cette nouvelle fonctionnalité, il identifie un bug préexistant. Il crée un commit explicite pour le corriger. Le commit de ce nouveau patch peut être directement sélectionné dans la branche master pour corriger le bug avant qu'il ne touche plus d'utilisateurs.

Annulation de changements et restauration de commits perdus

Comment utiliser git cherry-pick ?

Pour illustrer l'utilisation de la commande git cherry-pick, imaginons que nous disposons d'un dépôt avec l'état de branche suivant :

    a - b - c - d   Main
         \
           e - f - g Feature

La commande git cherry-pick est utilisable directement et peut être exécutée comme suit :

git cherry-pick commitSha

Dans cet exemple de commit, Sha est une référence de commit. Vous pouvez trouver ces références grâce à la commande git log. Dans notre exemple, imaginons que nous souhaitions utiliser le commit `f` dans master. D'abord, nous vérifions que nous travaillons sur la branche principale (master).

git checkout main

Ensuite, nous exécutons la commande cherry-pick comme suit :

git cherry-pick f

Une fois la commande exécutée, notre historique Git ressemblera à ceci :

    a - b - c - d - f   Main
         \
           e - f - g Feature

The f commit has been successfully picked into the master branch

Exemples d'utilisations de git cherry-pick

La commande git cherry-pick peut également être transmise à certaines options d'exécution.

-edit

Lors de la transmission de l'option -edit, Git appelle un message de commit avant d'appliquer l'opération cherry-pick.

--no-commit

L'option --no-commit exécutera la commande cherry-pick, mais au lieu de créer un commit, elle déplacera les contenus du commit cible dans le répertoire de travail de la branche actuelle.

--signoff

Résumé