Git Cherry Pick : qu’est-ce que c’est et quand l’utiliser ? 3 exemples !

De nos jours, il est presque impossible de ne pas utiliser un outil de gestion des versions du code source d’une application que l’on réalise, que ce soit avec quelqu’un d’autre ou dans le cadre d’un développement en solo. Dans ce cas, l’outil le plus utilisé à cette fin serait Git, qui dispose d’une série de commandes pour effectuer ce versionnement, comme la commande git cherry pick

Cependant, l’utilisation de Git peut sembler un peu complexe aux personnes novices dans le monde de la programmation et sa mauvaise utilisation peut causer des problèmes difficiles à résoudre. Imaginez que vous passiez toute la journée à résoudre un problème et que, lorsque vous parvenez enfin à le résoudre, quelqu’un d’autre écrase votre code par erreur. Ce serait très désagréable, vous êtes d’accord ?

Ainsi, pour vous permettre d’en savoir plus sur l’outil Git, nous allons vous montrer dans cet article une commande, qui est le git cherry pick. Il peut aider de nombreux programmeurs à travailler plus facilement avec Git. Voyons comment cette commande fonctionne en profondeur ?

  • Qu’est-ce que la commande Git Cherry Pick et à quoi sert-elle ?
  • Quelles sont les différences entre les commandes Git Cherry Pick, Rebase et Merge ?
  • Quand dois-je utiliser la commande Git Cherry Pick ?
  • Comment Git Cherry Pick fonctionne-t-il en pratique ? 3 exemples d’utilisation
  • Travailler avec les conflits
  • Quelles sont les commandes les plus couramment utilisées dans Git Cherry Pick ?
  • Quels sont les avantages de l’utilisation de Git Cherry Pick ?
  • Précautions à prendre lors de l’utilisation de Cherry Pick !

Qu’est-ce que la commande Git Cherry Pick et à quoi sert-elle ?

Le Git Cherry Pick est utilisé pour cueillir une commettre spécifique à la tâche sur laquelle il travaille actuellement. Son utilisation est fortement recommandée pour les projets de moyenne et grande envergure dans notre vie quotidienne.
Pour comprendre sa fonction, regardons l’image suivante :

Illustration du fonctionnement de git cherry pick

Dans ce cas, le maître serait le « vaisseau amiral », où se trouve tout le code de production. Imaginons que vous travaillez avec un ami dans un système immobilier. Elle travaille sur un écran d’enregistrement pour les personnes sur la plateforme, tandis que vous vous occupez de l’écran d’enregistrement pour le courtier.

Dans ce cas, elle finit par rencontrer un problème qui affecte également votre développement. Et maintenant ? Vous avez besoin de cette réparation pour continuer votre travail. Et dans ce cas, une telle commande vous permettra de prendre un commit spécifique que l’autre personne a fait et de le copier dans la tâche sur laquelle vous travaillez.

Ne vous inquiétez pas si la commande ne vous a pas été explicitée pour le moment, car des exemples pratiques seront présentés tout au long de l’article.

Pour l’instant, imaginez que vous êtes dans une cafétéria et que le cuisinier commence à prendre votre commande. Soudain, elle doit partir pour des raisons personnelles et une autre va continuer sa commande. La logique de la commande serait similaire à ceci.

Quelles sont les différences entre les commandes Git Cherry Pick, Rebase et Merge ?


Avant d’expliquer la différence entre les commandes, comprenons ce que signifient les commandes git rebase et git merge :

  • O git merge vous permet de modifier toutes vos branches de développement vers la branche master, qui serait la branche principale ;
  • Quant à la git rebasement intègre les changements entre une branche de développement et une autre, sans jouer sur la branche principale du référentiel.

En d’autres termes, les différences sont :

  • La commande git merge ne change aucun commit existant, elle crée simplement un nouveau commit de fusion, qui a deux branches ou plus ;
  • La commande git rebase, en d’autres termes, réécrit l’historique du commit, en lui générant un nouvel ID ;
  • La commande git cherry pick réapplique un commit dédié à la branche courante, avec un nouvel ID. Dans ce cas, le commit original choisi reste inchangé.

Quand dois-je utiliser la commande git cherry pick ?

Bien qu’elle ait la possibilité de choisir un commit spécifique pour le travailler de la manière souhaitée, elle ne doit être utilisée qu’en dernier recours. La raison en est que lorsque vous sélectionnez cette partie spécifique du code, un historique de commit dupliqué est créé dans votre dépôt, ce qui rend difficile le contrôle de l’application par les programmeurs.

Cool ! Jusqu’à présent, j’ai réussi à tout comprendre ! Mais, comment utiliser cette commande, en pratique ? Ce sera le sujet de la prochaine section.

Comment Git Cherry Pick fonctionne-t-il en pratique ? 3 exemples d’utilisation

Récupération d’un seul commit d’une autre branche !

Ouvrons l’invite de commande d’un projet qui a déjà un dépôt sur GitHub et tapons la commande suivante git log :

Identification des commits

Comme vous pouvez le voir, chaque commit génère un ID, qui serait celui en jaune.


Dans ce cas, pour prendre un seul engagement de votre ami, par exemple, il faudra utiliser cet identifiant :

Sélection d'un ID
Utilisation de Git Cherry Pick avec l'ID


C’est-à-dire que nous devrions écrire : git cherry-pick commit_identification

La prise en charge d’une gamme de commits !

Pour saisir une plage de cinq commits les plus récents, par exemple, nous appellerons 1 l’ID du premier commit et 5 l’ID du dernier commit effectué. Dans ce cas, il y a deux possibilités :

  • a) Ignorer le premier engagement
Récupérer les premiers et derniers commits avec git cherry pick
  • b) Copier tous les commits de la plage spécifiée :
Prendre une gamme spécifiée de commits

Ajouter seulement les changements dans le commit sélectionné

Pour ce faire, nous devrions utiliser un script similaire lors de la copie d’un seul commit, en mettant le –sans engagement à la fin. Ainsi, seuls les changements effectués dans le commit sélectionné seront ajoutés à votre copie :

Ajout de changements à la livraison sélectionnée

Travailler sur les conflits

Pour les conflits, nous avons les commandes suivantes :

  • -continue : pour que la commande soit exécutée après la résolution des conflits ;
Commande --continue git cherry pick
  • -Abandonner : Cette commande permet d’annuler le prélèvement de cerises ;
Commande --abort git cherry pick
  • -skip : il ignore le commit actuel et suit le reste de la séquence de commits que le référentiel a.
Commande --skip git cherry pick

Quelles sont les commandes les plus couramment utilisées dans Git Cherry Pick ?

Nous examinons ci-dessous quelques commandes qui sont utilisées dans la commande cherry pick :

  • -e : cette commande permet de modifier le message de livraison. Le message de validation est le message que vous utilisez pour expliquer ce qui a été fait dans une tâche particulière ;
  • -x : pour qu’un autre développeur ou une autre personne puisse voir l’historique des commit, cette commande signalera qu’il s’agit d’un cherry pick d’un autre commit, à préciser par la personne du développeur ;
  • -allow-empty : traduit en portugais, signifie « autoriser le vide », parce que, par défaut, aucun git cherry pick ne permet que des commits soient rendus vides. En utilisant cette commande, cela est autorisé ;
  • -allow-empty-message : Tout comme la commande ne permet pas de faire des commits vides, elle n’accepte pas non plus les commits sans titre. Mais, en utilisant cette commande, c’est autorisé.

Voyons ci-dessous quelques avantages de l’utilisation du Git Cherry Pick.

Quels sont les avantages de l’utilisation de Git Cherry Pick ?

Les avantages de l’utilisation de la commande git cherry pick sont les suivants :

  • Ils peuvent corriger les bogues de manière simple en sélectionnant une partie spécifique du code qui a été mis en production ;
  • Par rapport à une autre commande, git diff, l’utilisation de git cherry pick est plus recommandée, en raison de la spécification du commit à choisir qui est le plus correct ;
  • Il permet, comme dans l’exemple mentionné, à vous et à un autre développeur de travailler ensemble sur une correction dans le cadre d’un projet que vous réalisez.

Cependant, la commande git cherry pick a quelques contre-indications qui seront montrées dans la rubrique suivante.

Précautions à prendre lors de l’utilisation de Cherry Pick !

Malgré les avantages présentés ci-dessus, la commande nécessite une certaine prudence lors de son utilisation. Cette commande ne peut être utilisée qu’en dernier recours, car dans l’historique des commits de votre dépôt, il peut y avoir plusieurs commits dupliqués si vous utilisez cette commande de manière incontrôlée. Il faut donc l’utiliser avec parcimonie.

En outre, avec cette utilisation inconnue de la commande, votre dépôt peut devenir très désordonné et difficile à contrôler le code source pour les personnes qui verront l’historique de ce code.

Cette commande est très cool, n’est-ce pas ? C’est l’un des nombreux éléments de l’écosystème Git. Il permet de saisir des parties spécifiques du code d’une application pour les modifier comme le souhaite le développeur, sans nécessairement interférer avec les autres membres de l’équipe impliqués dans le projet.

Cependant, son utilisation devrait être fait avec modération et seulement quand c’est nécessaire, parce que beaucoup de gens ne savent pas comment utiliser git et l’utilisent sans même savoir pourquoi. En conséquence, nous aurons un référentiel plein de commits dupliqués et désorganisés. Il faut donc faire attention quand on utilise git cherry pick.

Êtes-vous intéressé par Git ? Ensuite, pour approfondir vos connaissances sur cet outil, consultez cet article qui couvre la commande git stash.