Défi
Énoncé
Appliquer un seul commit identifié par son hash depuis une branche feature sur la branche main, sans fusionner l'ensemble de la branche. En cas de conflit, deux options sont disponibles : annuler l'opération ou résoudre le conflit manuellement puis continuer. Commandes valides avec git 2.x+.
Contraintes
- Se placer sur la branche cible (
main) avant d'exécutergit cherry-pick. - Fournir le hash complet ou abrégé du commit à transporter.
- En cas de conflit : éditer les fichiers conflictuels, les ajouter à l'index avec
git add, puis finaliser avecgit cherry-pick --continue. - Pour annuler proprement :
git cherry-pick --abort(restaure l'état avant la tentative). - Ne pas utiliser
git cherry-pick -nsauf besoin explicite de contrôle de l'index.
Exemple
Situation de départ :
$ git log --oneline feature -3
b7e2a11 feat: ajouter la validation du formulaire
c4d3f09 feat: page de contact brouillon
1a0b8c7 chore: mise à jour des dépendances
$ git log --oneline main -1
9c8b7a6 docs: préciser le guide d'installation
État attendu sur main après l'opération — seul b7e2a11 a été transporté,
sous un nouveau hash, et c4d3f09 est resté sur feature :
$ git log --oneline main -2
9f1d034 feat: ajouter la validation du formulaire
9c8b7a6 docs: préciser le guide d'installation