Cherry-Pick un commit dans Git

Abdul Jabbar 30 janvier 2023
  1. Quand utiliser le Git cherry-pick ?
  2. Commande Git cherry-pick
  3. Restaurer les commits supprimés et annuler les modifications dans Git
Cherry-Pick un commit dans Git

cherry-pick est une commande très utile qui est incroyable et très utile dans divers scénarios lors de l’utilisation de Git. Dans Git, la commande cherry-pick nous permet de combiner les commits triés et séparés d’une branche dans la branche HEAD actuelle.

Nous pouvons expliquer comme choisir un commit dans la branche particulière et le transférer vers une autre branche. Cette commande peut être utile pour annuler les modifications de cette branche. Par exemple, si un commit est accidentellement poussé vers la branche indésirable. Nous pouvons basculer vers la branche souhaitée et choisir ce qui s’engage accidentellement dans la branche souhaitée, là où elle devrait se trouver.

Quand utiliser le Git cherry-pick ?

Git cherry-pick est un outil puissant mais ne peut pas toujours être le meilleur choix. Nous devrions appliquer cherry-pick pas courant car il crée facilement des commits en double lorsque nous combinons un commit dans notre branche HEAD à l’aide de cette commande.

Git est chargé de créer un nouveau commit avec les mêmes exigences que le dernier commit. Git cherry-pick doit être utilisé dans un scénario où nous avons commis par erreur les nouvelles modifications sur la mauvaise branche et que nous les avons poussées vers le référentiel distant.

Après l’avoir poussé vers le référentiel distant, nous réalisons que le commit poussé n’était pas nécessaire pour pousser sur une branche particulière, nous devons donc utiliser la commande Git cherry-pick pour choisir ce commit par ID unique et le transférer vers le bon branche.

Chaque fois que nous avons la possibilité d’appliquer la fusion ou la rebase traditionnelle pour combiner, nous devrions envisager le cherry-picking car le cherry-pick doit être réservé aux rares cas où la fusion ou le rebase n’est pas applicable.

Commande Git cherry-pick

Nous avons seulement besoin de spécifier le commit que nous voulons combiner dans notre branche HEAD actuelle à partir du commit que nous avons fait sur la mauvaise branche, et12x8iu est l’ID de commit que nous devons spécifier pour le combiner sur la branche actuelle.

Vous trouverez ci-dessous la commande qui transférera le mauvais commit vers le nouveau dernier commit.

$ git cherry-pick et12x8iu 

De cette façon, nous validerons directement les révisions spécifiées dans notre branche actuellement extraite.

Supposons que nous ayons encore besoin de quelques modifications dans notre travail. Dans ce cas, nous pouvons également utiliser la commande Git pour inclure uniquement les modifications du commit dans notre copie de travail principale sans les valider directement. De cette façon, il entrera directement dans une copie de travail modifiée et nous pourrons modifier les fichiers selon nos besoins.

Voici la commande pour obtenir le mauvais commit dans notre répertoire de travail :

$ git cherry-pick et12x8iu --no-commit

Restaurer les commits supprimés et annuler les modifications dans Git

Parfois une branche de fonctionnalité a des complications et n’est pas combinée dans une branche courante, et parfois une pull request peut s’arrêter sans être fusionnée à cause de différentes exigences de travail.

La particularité de Git est qu’il ne perd jamais la trace de ces commits, et grâce à certaines commandes comme git log et git reflog, ils peuvent être à nouveau suivis et cherry-picked à leur place où ils devraient être dans le premier lieu.

On peut dire que l’option cherry-pick ne doit pas être utilisée à la place de git merge ou git-rebase. La commande git log peut être appliquée pour aider à trier les commits à sélectionner dans la branche particulière.

Auteur: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Article connexe - Git Commit