top of page
Rechercher

Git - rebase interactif

  • Photo du rédacteur: Renaud Jordi
    Renaud Jordi
  • 15 janv. 2024
  • 2 min de lecture

Suite de l’épisode git rebase, le rebase interactif.

Réécrivez l’histoire en manipulant les commits 🙂


Comme nous l’avons vu précédemment, le rebase déplace une branche en réappliquant les commits successivement.

Une variante, le mode interactif (option -i ou —interactive) vous propose justement de choisir que faire avec chaque commit.


Pour cela, Git vous prépare un fichier texte avec la liste des commits prévus et les options possibles :

  • pick : appliquer les modifications du commit (option par défaut)

  • reword : utiliser le commit, mais modifier le message

  • edit : utiliser le commit et s’arrêter pour effectuer des modifications

  • squash : les modifications du commit sélectionné sont assimilées avec le précédent

  • fixup : comme squash, mais jette le message de ce commit

  • exec : exécute une commande du terminal


Voyons un exemple :

après un git rebase -i HEAD~4, le fichier texte fourni par Git ressemble à ça :

pick a239ef1 rename variable

pick b3467dc for debug only

pick f5e32a3 increase array size

pick 1a2b5fe fix mispell in comment


Il s’apprête à réappliquer les mêmes commits dans le même ordre. Et maintenant, c'est à vous de jouer, vous pouvez choisir que faire avec ces commits.

Vous pouvez aussi réordonner les lignes pour modifier l’ordre d’exécution ou simplement retirer une ligne pour supprimer l’application d’un commit.

Par exemple :


pick f5e32a3 increase array size

pick a239ef1 rename variable

fixup 1a2b5fe fix mispell in comment


Nous avons donc ici : changé l’ordre des commits, supprimé le commit de debug, et fusionné un comit pour arranger la faute de frappe dans le commentaire.

Après sauvegarde et exécution, il nous restera donc 2 commits


f5e32a3 increase array size

37ebf29 rename variable


Résultat : un historique impeccable et prêt à être poussé ;)


ree

 
 

© LH&TECH, tous droits réservés.

bottom of page