Eu não gosto muito de squash e merge, pois acho que os desenvolvedores devem ser responsáveis por esmagar as alterações localmente conforme necessário e cometer apenas commits pequenos e fáceis de entender. Que pode fazer parte de um ramo de recursos maior.
também teve a vantagem de que depois que eu puxei o novo master HEAD foi muito fácil limpar todas as filiais locais que foram mescladas com:
[alias]
; cm = clean merged
cm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
Mas o projeto em que estou trabalhando atualmente acha que não há problema em os desenvolvedores não se preocuparem com o fato de seus commits serem significativos. Eles ativaram o squash-and-merge por padrão em todos os repositórios do github.com.
Existe alguma maneira de pelo menos manter a facilidade de limpeza anterior? Existe alguma maneira de identificar filiais locais que foram mescladas com base em uma mesclagem esmagada?