Configurando git para desarrollo y producción

Estoy usando el ciclo de vida mencionado más abajo para impulsar cualquier cambio o function en la producción.

Localhost (los desarrolladores trabajan en localhost) -> migran sus cambios a etapas (para QA – Cambios de más de 1 desarrollador pueden estar allí) -> Producción.

Aquí está el flujo de trabajo que estoy usando,

-master(runs on production) -staging (runs on staging server - parent master) -feature (parent staging) 

Los desarrolladores trabajan en la twig de características y la fusionan de nuevo a la puesta en escena.

El problema al que me enfrento es que puede haber más de 1 código de desarrollador en la puesta en escena, si quiero entrar en funcionamiento con el código de 1 desarrollador no puedo fusionarlo directamente en el maestro ni puedo fusionar la function en maestro ya que es hijo de puesta en escena, puede tener un código de puesta en escena que aún no está activo y no debe ser empujado.

Necesita ayuda para definir el flujo de trabajo de git adecuado. Cualquier ayuda sería apreciada.

He utilizado un flujo de trabajo antes que es similar a la situación que describió anteriormente en su pregunta. Aquí hay un breve resumen de ese flujo de trabajo:

  • Uno o más desarrolladores trabajarán en cualquier cantidad de twigs de características. Cada twig de características se creará desde el master al comienzo de cada sprint.

  • Al final del sprint, cuando se completan todas las características, cada twig de características se fusiona en staging . La estadificación también se creará inicialmente desde el master . Puede staging_05_15 a la twig de etapas un nombre único para referirse a ella fácilmente, por ejemplo, staging_05_15 para la sucursal de mayo de 2015.

  • La última semana de cada carrera se gastará en probar la twig de staging para asegurarse de que sea estable. Si todas las características en la twig de staging son correctas y pasan las testings, la staging dará a conocer al cliente.

  • Finalmente, la staging se fusiona nuevamente en el master , y el ciclo se repite nuevamente para el siguiente sprint.