Git Flow: testings de funciones en un server de transición

Estoy usando Git-Flow para un proyecto de trabajo y no puedo establecer la mejor manera de enfrentar la siguiente situación:

El desarrollador Anya crea una característica [Feature1]

El desarrollador Fnetworking crea una característica [Feature2]

Ambos desarrolladores han finalizado sus funciones según las especificaciones y ahora desean ponerlas en un server intermedio para Q & A / aprobación para la próxima versión.

Las opciones que veo son las siguientes:

  1. Ambos desarrolladores terminan las funciones que los fusionan en una twig de desarrollo. El server de transición tiene la twig de desarrollo desprotegida.

    El problema aquí es digamos que durante la testing de Feature2 se encuentra que hay un error, o que hay una mejora imprevista que se puede agregar, quizás incluso se abandona o se retrasa indefinidamente. Ahora todas las características se mantienen y el lanzamiento se retrasa hasta que Feature2 se corrige / satisface la nueva especificación, o revertimos la fusión y volvemos a abrir la function, y la versión se pone en marcha. ¿Es esta una solución aceptable?

  2. Otra opción es que exista una tercera twig separada llamada estadificación. Los desarrolladores combinan individualmente sus características en la twig de etapas y avanzan al control remoto de etapas donde se testing cada característica. La function solo está terminada y fusionada en la twig de desarrollo una vez que ha sido aprobada.

    El beneficio de este enfoque es que la twig de desarrollo básicamente solo contiene características aprobadas y se puede sacar una versión de la misma en cualquier momento. La desventaja es que tendríamos que cambiar el server de transición para verificar la twig de desarrollo para que todo pueda ser probado durante una fase de lanzamiento. Además, la twig de etapas puede divergir de la realidad si se abandonan las características o alguna otra razón que no se me ocurre en este momento, lo que significa que debe volver a verificarse en vivo (?) Periódicamente.

Me doy count de que este es probablemente un problema que arreglan las tuberías y el arreglo de CI, pero tengo curiosidad sobre cómo otros lo resuelven usando un model de ramificación git o Git Flow.

Debido a que el código de las twigs de características debe ser probado / aprobado por QA, los desarrolladores pueden enviar las twigs de características a las twigs remotas y de funciones de fusión / verificación de QA por separado . Incluso una de las twigs de características no está aprobada, no afectará a otras twigs de características para lanzar una nueva versión.