Cherry-Pick Merge Commit dans Git
Lorsque plusieurs développeurs de la même équipe travaillent sur un projet, que ce projet soit grand ou petit, il devient très difficile de gérer et de gérer les changements entre les branches Git.
Parfois, nous avons besoin que certains commits particuliers soient combinés dans une autre branche plutôt que de combiner toute la branche, et à cette fin, nous utilisons un outil essentiel dans Git qui est populairement connu sous le nom de Cherry Picking.
Cherry Picking est un bon outil à utiliser lors de la sélection d’un seul commit parmi une liste complète de commits dans une branche de référentiel.
la commande git cherry-pick
dans Git
git cherry-pick
est une commande influente qui permet de déplacer des commits Git aléatoires d’une branche dans un référentiel et de les ajouter au HEAD
de travail actuel du référentiel. Cette commande est également bénéfique pour annuler les modifications liées au développement passé effectué par l’équipe.
Par exemple, si nous avons accidentellement fait un commit dans la mauvaise branche, nous passerons à la bonne branche et sélectionnerons le commit au bon endroit où il devrait appartenir dans une nouvelle branche du référentiel.
Tous les commits d’une branche sont mélangés lorsque l’on travaille avec git merge
ou git rebase
. Tandis que la commande cherry-pick
nous permet de sélectionner les commits sélectionnés pour l’assimilation.
Cherry-Pick Merge Commit dans Git
Choisir un commit de fusion n’est pas aussi simple qu’il y paraît. Lorsque nous exécutons la procédure de fusion, nous travaillons avec deux branches à la fois du même référentiel.
Par exemple, une branche parent-B
est fusionnée dans la branche parent-A
à l’aide des commandes Git.
Ainsi, lorsque nous choisissons le commit spécifique qui était une fusion avec deux parents, nous devons indiquer à la commande cherry-pick
laquelle contre laquelle le diff
doit être utilisé en utilisant l’option -m
. Nous mentionnerons la branche parent spécifique avec le commit hash
dans la commande suivante.
La syntaxe de la situation ci-dessus est expliquée comme suit.
git cherry-pick -m <commit hash>
Expliquons la situation avec l’exemple suivant de la commande ci-dessus.
M - N - O - P - Q (branch A)
\ /
R - S - T (branch B)
Comme indiqué ci-dessus, P
est le commit de fusion. Si nous exécutons la commande git cherry-pick
, Git passera un avertissement concernant la commande.
Nous devons donc maintenant mentionner le numéro de la branche parente avec l’identifiant de validation. Il sera exécuté dans la commande suivante.
git cherry-pick -m 1 P
Cette commande cherry-pick
prendra tous les commits de O- P
de l’exemple ci-dessus.
Nous pouvons également effectuer l’action ci-dessus en utilisant la commande ci-dessous.
git cherry-pick -m 2 P
Cela sélectionnera tous les commits de R- S- P
de l’exemple ci-dessus.
Remarque : sélectionner un commit dans une branche avec la commande merge commit est trop dangereux, donc tout en travaillant avec, procédez toujours avec prudence. Il y a un risque élevé de perdre l’historique du commit effectué dans le passé.
Cela perturbe tous les changements que nous avons apportés au parent, et nous n’avons pas défini -m
dans ce commit.
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