Voici comment procéder avec Magit .
Disons que le commit ed417ae est celui que vous voulez modifier ; il contient deux changements sans rapport et est enterré sous un ou plusieurs commits. Cliquez sur ll
pour afficher le journal, et naviguer jusqu'à ed417ae :
Ensuite, appuyez sur r
pour ouvrir la fenêtre popup de rebasement
et m
pour modifier l'engagement à un moment donné.
Remarquez comment le @
il y a maintenant sur le commit que vous voulez scinder - cela signifie que HEAD est maintenant sur ce commit :
Nous voulons déplacer HEAD vers le parent, donc naviguez vers le parent (47e18b3) et appuyez sur x
( magit-reset-quickly
, lié à o
si vous utilisez evil-magit
) et entrez pour dire "oui, je voulais dire commettre au point". Votre journal devrait maintenant ressembler à ceci :
Maintenant, tapez q
pour passer au statut régulier de Magit, puis utiliser le statut régulier d'unstage u
pour déstocker ce qui ne va pas dans le premier commit, commiter c
le reste comme d'habitude, puis s
tage et c
omettre ce qui va dans le deuxième commit, et quand c'est fait : taper sur r
pour ouvrir la fenêtre popup de rebasement
et un autre r
pour continuer, et vous avez terminé ! ll
montre maintenant :
1 votes
Duplicata possible de Diviser un commit de copie+modification en un commit de copie et un commit de modification en utilisant git.