El flujo de trabajo de Git cuando se entrega a los clientes

Durante los últimos dos años he estado usando el siguiente model de bifurcación mientras desarrollaba una gran aplicación B2C: un model exitoso de ramificación de Git . En este caso, el código que se fusionó con el maestro fue solo el de producción , es decir, la versión exacta que se implementó en las tiendas de aplicaciones.

Ahora que mi trabajo allí terminó, ahora estoy trabajando en una compañía que desarrolla aplicaciones mobilees para varios clientes.

Estamos usando el mismo model que el anterior, pero algo me molesta. El problema es que: "producción" no significa lo mismo cuando se trabaja para un cliente.

Déjame elaborar:

  • Entregamos múltiples versiones para la revisión / testing del cliente de forma regular (básicamente al final de cada sprint),
  • A veces no implementamos la aplicación en las tiendas,
  • A veces ni siquiera sabemos si el código está / estará en estas tiendas alguna vez.

El consenso aquí parece fusionar el código para dominar solo cuando se ha enviado a la producción (App Store o MDM). Las twigs de liberación se crean al final de cada sprint y solo se desarrollan, donde se crea una label.

Mis preguntas son:

  • ¿Debemos unirnos para dominar siempre que entreguemos algo al cliente?
  • ¿Deberíamos crear una twig intermedia (llamada 'entrega' o 'etapa' por ejemplo) para recibir lanzamientos y mantener al maestro en estado de producción real?