Git cherry-pick est pratique quand vous savez exactement quels commits vous voulez (et que vous connaissez leurs identifiants) -- il est difficile de battre la simplicité qu'il procure.

Mais que faire quand vous ne connaissez pas les identifiants des commits voulus ? Heureusement git a pensé à vous pour ce cas-là ! Nous pouvons utiliser un rebase interactif pour cela -- c'est la meilleure façon de reconsidérer une série de commits que vous vous apprêtez à rebaser.

Allons un peu plus dans les détails ...

Tout rebase interactif signifie utiliser la commande rebase avec l'option -i.

git rebase -i

Si vous mettez cette option, git va ouvrir une interface graphique pour vous montrer quels commits vont être copiés en dessous de la cible sur laquelle vous rebasez. Elle vous montre aussi les identifiants et commentaires des commits, ce qui est pratique pour s'orienter parmi les commits. Voici à quoi cela peut ressembler.

Git - rebase interactif editeur
Pour nos besoins, l'éditeur en ligne crée une petite fenêtre de dialogue qui se comporte de la même manière ;)

Quand le rebase interactif s'ouvre, vous avez la possibilité de faire 3 choses :

Vous pouvez réarranger les commits simplement en changeant leur ordre dans l'interface graphique (dans notre fenêtre de dialogue, cela signifie déplacer les objets dedans avec la souris -- drag and drop).

Vous pouvez omettre certains commits. Cela est désigné par pick : cliquer sur pick désélectionne/resélectionne le commit.

Enfin, vous pouvez écraser des commits. Malheureusement notre éditeur ne supporte pas cette option, nous allons donc sauter les détails concernant cette possibilité. Pour faire court, cela vous permet de mélanger des commits.

Pour finir ce niveau, faites un rebase interactif et atteignez l'ordre indiqué dans le fenêtre d'objectif. Souvenez-vous que vous pouvez toujours exécuter les commandes undo ou reset pour réparer vos erreurs :D