Copier les commits d'une autre branche dans Git

Abdul Jabbar 23 aout 2022
Copier les commits d'une autre branche dans Git

Vient le moment où, en travaillant dans Git, nous voulons intégrer des commits spécifiques et individuels d’une branche à notre branche HEAD actuelle. Cela peut être dû au fait que le client souhaite apporter des modifications à un produit ou à tout bogue signalé.

Soit nous l’avons commité par erreur, soit nous ne voulons plus ce commit dans notre branche précédente et le voulons dans notre branche HEAD actuelle.

La réponse au problème ci-dessus est CHERRY PICK. Ainsi, dans les sections suivantes, nous discuterons en détail de la commande cherry-pick.

Copier les commits d’une autre branche dans Git

Prendre un commit particulier d’une branche et le copier dans notre branche HEAD actuelle s’appelle Cherry Picking.

Git a une commande particulière à cet effet, c’est-à-dire la commande cherry-pick de Git. L’autre utilisation du cherry-picking est d’appliquer des modifications spécifiques avant de fusionner ou de développer une pull request.

Cela peut être très utile pour annuler les modifications.

Cet article discutera de la sélection d’un commit spécifique d’une branche à une autre.

Afficher les commits à l’aide de la commande git log

Tout d’abord, nous utiliserons le git log pour déterminer quel commit nous voulons choisir. Voici le résultat de la branche de la commande git log :

d23216 - 953222	- 953219 - aa3s36 - 532d37 [master]
           \
            76cada - 66ecb3	- b886a0 [feature]

Ici dans la branche feature, il y a un commit 66ecb3 d’une autre branche que nous ne voulons que dans notre branche master.

Choisissons ce commit spécifique et transférons-le dans la branche actuelle, la branche master. Ensuite, nous pouvons utiliser ces changements de validation à l’avenir pour notre projet.

Exécutez la commande git cherry-pick pour copier les commits

Ici, git cherry-pick viendra à notre rescousse. 66ecb3 est la cerise sur le gâteau, et nous voulons la choisir parmi de nombreuses poussées qui ont été faites dans le passé.

Prenons-le dans une autre branche en exécutant la commande suivante.

git checkout master
git cherry-pick 66ecb3

Une fois que la commande ci-dessus est exécutée avec succès, maintenant, 66ecb3 agit comme un nouveau commit dans notre branche master.

Git a donc fait une copie du commit dont nous avions besoin, avec les mêmes messages de commit et modifications sur la branche master. Finalement, un nouveau commit avec son nouvel ID est créé.

Nettoyer l’autre branche à l’aide de la commande git reset

Si nous passons à la branche feature, nous verrons le même commit à son ancien emplacement. C’est parce que Git l’a copié dans l’autre branche plutôt que de le déplacer.

Il a laissé celui d’origine intact.

Maintenant, pour le nettoyage et l’annulation, nous utiliserons la commande git reset après avoir vérifié la branche requise.

$ git checkout Test
Switched to branch 'Test'
$ git reset --hard HEAD~1
HEAD is now at 66ecb3 Change the title and delete the error page
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