lundi 6 août 2018

Git Tips : Cherry-pick

La commande « Cherry-pick » permet de sélectionner un commit dans une branche et l’appliquer sur une autre branche. Ce patch sera considéré comme un nouveau commit dans la nouvelle branche. 
 
Pour abandonner un cherry-pick en cas d’erreur, il faut faire :   
  • Git cherry-pick --abort 
Pour faire un roll back d’un cherry pick, il y a deux méthodes : 
  • Si la branche est privée : git rebase. 
  • Si la branche est publique : git revert. 

Cas d’usages de cherry-pick : 
Lorsqu’on découvre un « defect » en production, et qu’on a corrigé le « defect » pour la branche de production, nous devons apporter les modifications à la branche de développement entre autres. 

  • La première approche auquel il faut penser c’est de faire un simple merge si cela fonctionne correctement. Si le merge est possible ç’est de loin la meilleure solution.  Sinon, si d’autres changements ont été apportés à la branche production et qui ne doivent pas figurer dans la branche de développement, le merge ne produira pas le résultat souhaité, puisqu’il va inclure tous les autres changements apportés à la branche de production. 
  • Dans ce cas la « cherry-pick » est la réponse à votre besoin.  « Cherry-pick » va rapporter uniquement les changements inclus dans le commit sélectionner sans les changements apportés par les autres commits. 
Voici un scénario très courant qui illustre cela : 
Un « defect » a été trouvé en production. Le fix apporté est dans le commit Hmais le commit G ne doit pas être appliqué à la branche de développement. 

 
Le cherry-pick du commit H dans la branche Development, commande git à executer : 

  • Git checkout Development 
  • Git cherry-pick H 
Ce qui résulte en ça :  
 

Aucun commentaire:

Enregistrer un commentaire

to criticize, to improve