Limpie la sucursal de Git para el cliente

En el trabajo tenemos un git flow donde los desarrolladores corrigen un defecto determinado en la twig de desarrollo, luego tienen que 'poner' (*) su corrección en la twig integ . Esta twig de integ debe ser accesible para nuestros clientes porque quieren verificar nuestro código y recomstackrlo ellos mismos

El cliente quiere una sucursal limpia, idealmente con una confirmación por defecto corregido.

Pero nuestros desarrolladores pueden entregar su trabajo en varias confirmaciones (un defecto corregido por varias confirmaciones en la twig de desarrollo)

Si simplemente fusionamos la twig de desarrollo en la twig integ , el cliente verá en la historia todas las confirmaciones atómicas realizadas por los desarrolladores, que se evitarán.

Pregunta relacionada con (*): ¿Cómo podemos limpiar la sucursal para el cliente? – sin imponer al desarrollador una regla de "un commit por defecto" – idealmente sin seleccionar y aplastar los commits atómicos correspondientes a cada defecto en la twig integ (porque el cherry picking duplica los commits)

Editar: No quiero realizar un git rebase interactivo y aplastar los commits desde la twig de desarrollo. Es la twig de desarrolladores y dividen las confirmaciones por una buena razón desde el punto de vista del desarrollador (quizás técnica o lógicamente tiene sentido crear varias confirmaciones). Desde el punto de vista del cliente, no les importa el hecho de que un defecto haya sido corregido por varias confirmaciones, quieren un historial limpio en SU ​​twig

Puede mostrar solo las fusiones en integ con git log --merges .

Si lo estoy leyendo bien, solo necesita include el indicador --no-ff (no avance rápido) cuando se fusiona desde la twig dev. Sus correcciones se fusionarán desde la twig dev en la twig integ como una confirmación única que contiene todos los cambios.

Existe una publicación de blog bastante conocida, Un exitoso model de ramificación de Git , de hace unos años que defiende este método de trabajo.