Aller au contenu principal
U/
Versionnement
git

Apporter un commit d'une autre branche

Utiliser git cherry-pick pour appliquer un commit spécifique depuis une branche feature sur la branche main. Gérer le cas d'un conflit avec --abort ou la résolution manuelle suivie de --continue.

20 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

É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écuter git 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 avec git cherry-pick --continue.
  • Pour annuler proprement : git cherry-pick --abort (restaure l'état avant la tentative).
  • Ne pas utiliser git cherry-pick -n sauf 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

Appliquer uniquement le commit b7e2a11 sur main :

$ git checkout main
$ git cherry-pick b7e2a11
[main 9f1d034] feat: ajouter la validation du formulaire
 Date: Wed May 20 11:30:00 2026 +0200
 2 files changed, 45 insertions(+)

En cas de conflit lors du cherry-pick :

$ git cherry-pick b7e2a11
Auto-merging src/form.js
CONFLICT (content): Merge conflict in src/form.js
error: could not apply b7e2a11... feat: ajouter la validation du formulaire

# Option 1 : annuler
$ git cherry-pick --abort

# Option 2 : résoudre et continuer
$ # (éditer src/form.js pour résoudre le conflit)
$ git add src/form.js
$ git cherry-pick --continue
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.