Sobes.tech
Junior

Qu'est-ce que cherry-pick ?

sobes.tech IA

Réponse de l'IA

git cherry-pick est utilisé pour transférer un ou plusieurs commits d'une branche à une autre.

Principe de fonctionnement :

  1. Sélectionne le commit (ou les commits) spécifié dans la branche source.
  2. Applique les changements contenus dans ces commits à la branche active en cours.
  3. Crée de nouveaux commits dans la branche courante avec les mêmes changements et messages que les commits originaux.

Quand l'utiliser :

  • Transférer une correction spécifique d'une erreur d'une branche (par exemple, production) à une autre (par exemple, développement), sans affecter d'autres changements.
  • Appliquer des changements d'une branche de fonctionnalités à une autre, sans fusionner complètement.
  • Annuler des fusions incorrectes en conservant les commits individuels.

Différences avec merge et rebase :

  • merge : Fusionne toute l'histoire des changements d'une branche dans une autre.
  • rebase : Réécrit l'histoire des commits, en les déplaçant sur une nouvelle base.
  • cherry-pick : Applique uniquement les commits sélectionnés, en créant de nouveaux commits et sans modifier l'histoire des commits originaux.

Commande principale :

# Transférer un commit
git cherry-pick <commit-hash>

# Transférer plusieurs commits (dans l'ordre de leur indication)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Exemple :

Supposons qu'il y ait deux branches : main et feature. Sur la branche feature, un commit fix-typo a été effectué. Il faut transférer ce commit à la branche main.

# Passer à la branche cible
git checkout main

# Exécuter cherry-pick en utilisant le hash du commit de la branche feature
git cherry-pick 7f3bca2 # Exemple de hash de commit

Après avoir exécuté la commande, un nouveau commit avec les mêmes changements que fix-typo apparaîtra dans la branche main, mais avec un hash différent.