{{tag>dev git rebase historique}}
====== Git : Réorganisation de l'historique avec rebase ======
On souhaite modifier l'historique ci-dessous:
* 36d37a2 (HEAD -> master) Promtail: Configuration pipeline
* c7ab08b Définition/réservation du réseau interne pour les services
* 7cb9cee Ajout du service promtail
* c3d4ada Ajout service Loki
* 9d18d87 Modification réseau virtuel
. . .
Sur les 3 derniers commits, on souhaite regrouper les modifications concernant le service promtail (36d37a2 et 7cb9cee) puis ensuite appliquer les modifications de configuration du réseau c7ab08b.
Pour réorganiser, modifier l'historique, on utilise la commande git rebase avec l'option -i ou %%--interactive%%)
git rebase -i HEAD~3
L'éditeur est lancé, les différentes commandes disponibles sont listées en commentaires sous les identifiants de commits.
On réordonne les commits et on utilise ici la commande fixup pour fusionner le commit 36d37a2 avec le précédent tout en abandonnant le message de commit.
pick 7cb9cee Ajout du service promtail
fixup 36d37a2 Promtail: Configuration pipeline
pick c7ab08b Définition/réservation du réseau interne pour les services
On sauvegarde les modifications, les modification sont alors appliquées à l'historique. Après exécution des commandes, l'historique est conforme à nos attentes:
* 677183d (HEAD -> master) Définition/réservation du réseau interne pour les services
* 502ecc6 Ajout du service promtail
* c3d4ada Ajout service Loki
* 9d18d87 Modification réseau virtuel
. . .
===== Références =====
* https://git-rebase.io/