Mémo Git · Réécrire l'historique
Regrouper des commits
git rebase -i (squash)
Regrouper (« squasher ») des commits fusionne plusieurs petits commits en un seul, plus lisible. La méthode classique est le rebase interactif : on garde le premier commit en pick et on passe les suivants en squash ou fixup.
Ce que ça fait
Fusionne plusieurs commits en un seul, à la place du plus ancien.
Un cas d'usage
Trois petits commits de mise au point ne forment en réalité qu'un seul changement.
Attention : Réécrit l'historique de la branche.
En ligne de commande
git rebase -i HEAD~3- Puis
squash(ous) sur les commits à fusionner dans le précédent. git reset --soft HEAD~3 && git commit- Alternative : défait les 3 commits en gardant tout indexé, puis recommite.
git merge --squash <branche>- Intègre toute une branche en un seul commit.
Dans Merathon
- Dans le graphe, sélectionne les commits avec Ctrl + clic ou Maj + clic.
- Clic droit → « Squasher les N commits sélectionnés… ».
- Ajuste le message du commit obtenu puis valide.
Questions fréquentes
Quelle différence entre squash et fixup ?
squash combine les messages des commits fusionnés ; fixup garde seulement le message du premier.
Faut-il squasher avant une pull request ?
Ça dépend de l'équipe. Beaucoup de forges proposent « Squash and merge », qui le fait à l'intégration.