¿Hay problemas con este flujo de trabajo de características con Git?

Actualmente estoy en el medio de migrar repositorys de Subversiones a Git. El problema que tengo es la gestión de la gran cantidad de cambios que están en curso para un proyecto en particular. Se pueden abandonar algunos cambios y se están rompiendo las twigs de Subversion.

Dada la flexibilidad de Git en su ramificación, propongo el siguiente flujo de trabajo:

Diseño central:

  • twig principal : restringido solo para requestes de extracción. Desarrolladores senior para firmar.
  • desarrollar twig – Disponible para todos los desarrolladores. Las características de borde sangrante se fusionaron aquí. Puede que no siempre esté funcionando
  • uat branch – Disponible para todos los desarrolladores. Funciones probadas que están lists para que el cliente pruebe
  • twig de ensayo : disponible para todos los desarrolladores. Para ser llenado con funciones lists para producción, firmadas solamente
  • característica / * – Para todo el trabajo que se completará después del lanzamiento del proyecto. Una característica podría ser algunos cambios de text o un desarrollo significativo de las características del sitio

Escenario de trabajo típico:

  • El cliente ha solicitado una nueva function en el website
  • El desarrollador crea una nueva twig de características desde el maestro y codifica la nueva característica. La característica se combina regularmente en desarrollo
  • Una vez que la function está list para la testing, la característica se fusiona en la twig uat
  • Cualquier otro ajuste se realiza en la function y se fusiona en la twig uat
  • Una vez que el cliente está satisfecho con la nueva característica, se fusiona con la puesta en escena, que es una réplica del maestro
  • Una vez completada la fusión a la puesta en escena, se genera una request de extracción para analizar la fusión de códigos desde la puesta en escena hasta el maestro listo para la implementación en los serveres de producción.
  • Los cambios adicionales solicitados en la request de extracción se realizan en la function y se combinan en la organización
  • Al completar la request de extracción, el maestro se fusiona en desarrollo y uat
  • La característica debe ser eliminada después de un período de time

Con lo anterior estoy tratando de eliminar

  • Problemas con la limpieza de características abandonadas. En el peor de los casos con la configuration anterior, la twig de desarrollo se puede descartar, clonar desde uat o master y tener características continuas fusionadas de nuevo en ella.
  • Cherry elige las características completas en el desarrollo para poner en práctica o maestra, que es lo que está sucediendo actualmente en Subversion
  • Manipulación indebida del código de producción. Con lo anterior, los desarrolladores pueden probar que el código funciona con el entorno intermedio y solicitar que se revise el código antes de fusionarse en maestro. Nuestra solución de Subversion permite a los desarrolladores fusionarse en 'trunk' pero no pueden implementarse, lo que puede complicarse cuando se encuentra un código incorrecto

En general, es un flujo de trabajo válido y no sé de nada para mejorar (usando uno similar aquí). Si desea una validation formal (supongo que ya los ha analizado), se describe en gran parte en el Flujo de trabajo de la twig de características en esta página . El flujo de trabajo de graduación (estadificación-> uat-> maestro) también se describe en el manual .

Dada la flexibilidad de gits, tampoco estás atascado en este flujo de trabajo para siempre, así que si encuentras que algo no funciona, siempre puedes modificarlo (y debido a la naturaleza distribuida, cualquiera puede usar su propio micro flujo de trabajo sin ennetworkingar las cosas).

Entonces sí flujo de trabajo válido, debería eliminar las cosas que desea eliminar y debe acomodar el flujo de trabajo que describió.

Los detalles todavía dependen de la situación, pero como dije, es un gran comienzo para repetir si surge la necesidad.