No me gusta mucho squash y merge porque creo que los desarrolladores deberían ser responsables de squash y cambios localmente según sea necesario y solo realizar confirmaciones pequeñas y fáciles de comprender. Que puede ser parte de una rama de funciones más grande.
También tuvo la ventaja de que después de sacar el nuevo HEAD maestro, fue muy sencillo limpiar todas las ramas locales que se fusionaron con:
[alias]
; cm = clean merged
cm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
Pero el proyecto en el que estoy trabajando actualmente cree que está bien que a los desarrolladores no les importe que sus compromisos sean significativos. Habilitaron squash-and-merge de forma predeterminada en todos los repositorios de github.com.
¿Hay alguna manera de al menos mantener la facilidad de limpieza anterior? ¿Hay alguna forma de identificar que las sucursales locales se fusionaron basándose en una fusión aplastada?