Introduction à GIT Cherry-pick
Dans cet article, nous allons en savoir plus sur le GIT Cherry-pick. Il existe de nombreux programmeurs travaillant sur le même développement logiciel à partir de différents coins du monde. Alors comment gérer les codes? Comment feront-ils comprendre aux autres quels changements ils ont apportés? Comment valider les codes et maintenir différentes versions? Comment fusionner les codes?
Pour résoudre ces problèmes, GIT est entré dans le monde du développement. GIT est un système de gestion de code source (SCM) et de contrôle de version distribué exceptionnel. GIT a été créé par Linux Torvald, la personne qui a développé le noyau Linux. De toute évidence, il s'agit d'un outil open source où chaque programmeur peut contribuer à la création d'un logiciel à partir de n'importe où dans le monde.
GIT a de nombreuses fonctionnalités. Il peut avoir plusieurs branches. Un développeur peut écrire des codes après avoir créé sa propre branche dans le système local et la fusionner avec la branche principale ou d'autres branches du référentiel GIT distant.
Qu'est-ce que GIT Cherry-pick?
Imaginez, le travail de projet se poursuit pour écrire un script sur l'histoire et l'évolution des téléphones portables. Donc, il y a beaucoup de gens qui travaillent sur le même projet et tous travaillent séparément. Cependant, à la fin, le script de chacun sera compilé ensemble.
Maintenant, le membre A écrit sur les téléphones Apple et réalise soudain que cela peut être mieux. Il a donc informé les autres membres de l'équipe qui travaillent sur le même projet. Un autre membre X lui a dit qu'il écrivait un script sur les téléphones Android et a demandé au membre A d'y jeter un œil.
Ensuite, le membre A a examiné le script du coéquipier et a constaté que certaines des parties sont les mêmes, avec quelques changements qui sont vraiment bons. Par conséquent, il a choisi ces changements et les a collés dans son propre script. C'est le même que ce que cherry-pick a appelé dans GIT en matière de codage logiciel.
Git-cherry-pick est une commande git puissante et cherry-picking est un processus pour récupérer un commit d'une branche et l'appliquer à une autre branche. En termes simples, il peut y avoir plusieurs branches où les développeurs valident leurs codes. Maintenant, un développeur censé valider ses codes dans la branche A, cependant, il a commis les codes dans la branche B par erreur. Cette fois, cherry-pick peut ramener le commit à la bonne branche.
Utilisez la commande ci-dessous (dans le système Unix) pour connaître les différentes options de git-cherry-pick,
Commander:
$man git-cherry-pick
La syntaxe de la commande cherry-pick,
Syntaxe:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Quand nous utilisons GIT Cherry-pick?
Git-cherry-pick est un outil utile mais n'est pas toujours une meilleure pratique. git-cherry-pick peut être utilisé dans les scénarios suivants,
- Pour le rendre correct lors d'une validation accidentelle dans une autre branche.
- Fusion traditionnelle préférable
- Pour appliquer les modifications dans un commit existant.
- Validation en double
- Correction de bugs
Comment fonctionne GIT Cherry-pick?
Un défaut trouvé dans le code dans l'environnement de production et un correctif doivent être implémentés. Une fois le changement implémenté et un défaut corrigé, il est maintenant temps de ramener ce changement de code dans l'environnement de développement afin que le défaut ne se reproduise plus dans l'environnement de production à l'avenir.
La première option est une simple fusion git et c'est une solution idéale si cela fonctionne. Cependant, d'autres modifications sont également apportées à l'environnement de production et celles-ci ne peuvent pas être ramenées à l'environnement de développement lors de la fusion. Et dans ce cas, le choix de cerise est la bonne option.
Cherry-pick apporte ce commit qui a été fait pour la correction de bugs uniquement. Il ne sélectionne pas les autres commits.
Voici une illustration,
Fig 1: G et H sont les validations de la branche Production. La branche Développement de A à F s'engage. Un problème est détecté dans la branche Production. Un correctif est développé dans H commit qui doit s'appliquer dans la branche Development mais commit G n'est pas requis pour être appliqué.
Fig 2: Maintenant, le commit H est choisi par la branche de développement et le commit résultant est H '. Les modifications de validation G ne sont pas incluses dans la branche Développement.
Comment utiliser GIT Cherry-pick avec un exemple?
Supposons que nous ayons deux branches (master et new_feature) (commande utilisée pour voir la branche branch-git)
Nous avons fait le commit (surligné) dans la branche new_feature par erreur. (commande utilisée pour voir le journal logs-git validé)
Cependant, il était censé être uniquement dans la branche principale. Copiez d'abord le SHA en surbrillance dans un bloc-notes.
Maintenant, nous allons utiliser une commande git-cherry-pick pour déplacer ce commit vers la branche master, mais avant cela, nous devons passer à la branche master (commande utilisée pour changer la vérification de branch-git < branchname > )
Maintenant, nous pouvons voir que le même commit est disponible dans la branche master (commande used-git log)
Pour plus d'exemples de commandes git cherry-pick, veuillez consulter le lien ci-dessous,
https://git-scm.com/docs/git-cherry-pick
Choses importantes à retenir
Il faut se rappeler de trois choses lors de l'utilisation de la sélection de cerises et du travail en équipe.
1. normaliser le message de validation: il est préférable d'utiliser le message de validation standard et -x si nous sélectionnons à partir d'une branche publique.
git cherry-pick -x
Cela évitera de fusionner les conflits à l'avenir.
2. copier sur les notes: Parfois, certains cerise-cueillette ont des notes et lorsque nous exécutons la cueillette, les notes ne sont pas copiées. Par conséquent, il vaut mieux l'utiliser.
git notes copy
3. C herry-pick plusieurs commits quand ils sont linéaires uniquement: Nous voulons cherry-pick plusieurs commits comme G, H (Fig 1), s'ils sont linéaires, alors utilisez uniquement la commande ci-dessous,
git cherry-pick G^..H
Conclusion
Supposons que nous voulons récupérer un commit spécifique dans une branche différente et l'appliquer à la branche actuelle, voici les étapes recommandées,
1. Trouvez le hachage de validation qui doit d'abord être sélectionné.
2. Accédez à la succursale de destination.
3. git cherry-pick -x
Résolvez les conflits s'ils se produisent. S'il y a des notes dans le commit d'origine, elles doivent être copiées.
git notes copy
Articles recommandés
Ceci est un guide de GIT Cherry-pick. Ici, nous discutons de son fonctionnement et de la façon d'utiliser git cherry-pick avec des exemples en détail. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Outils Git
- Terminologie Git
- Git Checkout Tag
- Qu'est-ce que Git Branch?