Commencer avec le repo dans l'état original
![Original repo history]()
Pour supprimer le commit de fusion et réduire la branche à un seul commit dans la ligne principale.
![Squashed commits, no merge commit]()
Utilisez ces commandes (en remplaçant 5 et 1 par les SHAs des commits correspondants) :
git checkout 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git rebase HEAD master
Pour conserver un commit de fusion mais écraser les commits de branche en un seul :
![Squashed commits, retained merge commit]()
Utilisez ces commandes (en remplaçant 5, 1 et C par les SHAs des commits correspondants) :
git checkout -b tempbranch 5
git reset --soft 1
git commit --amend -m '1 2 3 4 5'
git checkout C
git merge --no-ff tempbranch
git rebase HEAD master
Pour supprimer le commit de fusion et le remplacer par des commits individuels de la branche
![Branch moved into mainline, no merge commit]()
Il suffit de faire (en remplaçant 5 par le SHA du commit correspondant) :
git rebase 5 master
Et enfin, pour supprimer entièrement la branche
![Branch removed entirely]()
Utilisez cette commande (en remplaçant C et D par les SHAs des commits correspondants) :
git rebase --onto C D~ master