Cherry-picking

Git avancé

Amanda Crawford-Adamo

Software and Data Engineer

Qu'est-ce que le cherry-pick ?

Applique les changements d'un commit précis à une autre branche

Cherry-pick d'un seul commit

git cherry-pick <commit-hash>

Cherry-pick de plusieurs commits

git cherry-pick <hash1> <hash2> ..

Objectif

  • Appliquer des correctifs ciblés entre branches
  • Rétablir des fonctionnalités vers des versions stables
  • Appliquer sélectivement des changements expérimentaux
  • Récupérer des commits perdus
Git avancé

Exemple de cherry-pick

Un graphe des branches main et feature. Main a deux commits. La branche feature diverge de main après le dernier commit.

Deux images montrant l'historique des branches main et feature avant le cherry-pick.

Git avancé

Processus de cherry-pick

  1. Basculer sur la branche main

    git checkout main
    
  2. Exécuter cherry-pick pour intégrer les changements du commit def456 depuis la branche feature.

    git cherry-pick def456
    

Un graphe des branches main et feature. Main a trois commits. La branche feature diverge de main après le deuxième commit avec deux commits additionnels. Le troisième commit de main est un cherry-pick du dernier commit de feature.

Git avancé

Résoudre les conflits de cherry-pick

Étapes de résolution de conflits
  1. Modifier manuellement les fichiers en conflit
  2. Ajouter les fichiers résolus à l'index avec git add <resolved-files>
  3. Poursuivre le cherry-pick avec l'option --continue
git cherry-pick --continue
Arrêter un cherry-pick

Pour interrompre l'opération, utilisez l'option --abort

git cherry-pick --abort
Git avancé

Quand utiliser cherry-pick

Cas d'usage

  1. Appliquer des correctifs urgents (hotfixes)
  2. Tester des fonctionnalités isolées

Mises en garde

  1. Peut créer des commits en double
  2. Peut compliquer l'historique si trop utilisé
  3. Changements volumineux : envisager un merge ou un rebase
Git avancé

Passons à la pratique !

Git avancé

Preparing Video For Download...