N’y comprenant pas vraiment de quoi il retourne, j’ai fait quelques tests sur un dépôt de test, histoire de voir pratiquement ce qui ce passe. Donc j’ai fait 5 commits — sans les pousser sinon Olivier va me fâcher — et ensuite j’ai testé les deux commandes disponibles dans Sublime Merge.

La première, avoir sélectionné 4 des 5 commits, intitulés commit 1, commit 2, commit 3 et commit 4, j’ai lancé la commande Squash Selected Commits.
Résultat : Les 4 commits sont fusionnés, leurs messages de commit respectif étant également récupérés et fusionnés dans le commit résultant. Pratique pour rassembler plusieurs commits qui concernent la même feature.

Sublime Merge propose aussi une deuxième commande de ce type, intitulée Squash Selected Commits, ignoring new messages (fixup).

J’ai donc sélectionné le commit résultant de la commande précédente, intitulé commit 1, et le 5e intitulé Commit maousse costaud et lancé cette commande pour observer la différence avec la précédente.
Résultat : Les 2 commits sont fusionnés, par contre les messages du (ou des) plus récent(s) sont simplement ignorés. Pratique pour rassembler les « Oups » multiples qui suivent le commit initial.

Idéalement il faudrait que je sache comment refaire pareil en ligne de commande, sauf que… :-)
J’ai l’intuition qu’il s’agit d’un git rebase avec des tas d’options alambiquées, non ?
Un peut taquin j’ai quand même essayé de pousser 3 commits (A, B et C) avant de les fusionner :

Fatalement ça m’a créé une branche locale qui diverge de celle du dépôt distant (la distante contient toujours les 3 commits, A, B et C).
J’ai alors testé un git rebase —squash Github/master mais c’est sans effet alors j’ai fini par faire un merge banal et hop, c’est rentré dans l’ordre mais cette fois avec un commit supplémentaire résultant du merge.

Conclusion : avant le push on fait (à peu près) ce qu’on veut, après c’est crade :-p
1 De thierr26 -
J’ai découvert récemment une manière de faire un “fixup” en ligne de commande grâce à ce billet: https://blog.filippo.io/git-fixup-amending-an-older-commit
Il s’agit d’un rebase interactif après un commit avec l’option
--fixup
:2 De pit -
Intéressé par la réponse, je venais voir si elle était déjà dans les commentaires et bim déjà une réponse c’est cool
3 De Franck -
Merci thierr26, va falloir que je teste ça…
4 De Olivier G. -
Sur Rebase, j’ai toujours tendance à aller relire Christophe Porteneuve : https://delicious-insights.com/fr/articles/bien-utiliser-git-merge-et-rebase/.
5 De Franck -
Merci Olivier pour le lien !