Git - rebase interactif
- 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é ;)




