¿Cuál es la estrategia de ramificación de Git con un process ágil?

Tenemos un repository central y tres entornos diferentes, es decir. desarrollo, puesta en escena y producción. Seguimos el process Ágil. Cada sprint (10 días de trabajo) contendrá la cantidad de User Stories (mejoras) y Defects (errores). Estamos utilizando el GIT y desplegamos la twig maestra usando la secuencia de commands de compilation capistrano.

  1. No queremos repositorys diferentes para cada entorno.
  2. El repository principal siempre es la versión estable y apunta al entorno de producción.
  3. Algún time el cliente no atesting las historias de los usuarios y las mantiene en espera, pero quieren verlas en etapas y no en vivo.
  4. Queremos mantener lanzamientos para cada sprint como sprint 1, sprint 2 para control de versiones.

Entonces, ¿cuál será la mejor estrategia de ramificación para usar en estos casos?

Use un repository con múltiples twigs. Desarrolla cada historia en una twig de características. Cuando se complete, fusione a una twig de desarrollo. Al final de cada sprint, si el equipo está contento con todas las historias de usuarios completas en su twig de desarrollo, únase a una twig de etapas. Esta se convertirá en su twig UAT como tal. Cada vez que se fusiona con una sucursal provisional, marque su lanzamiento con una reference de sprint. Una vez que obtiene la aprobación del cliente, puede fusionar su versión en la twig principal.

Echa un vistazo a Git Flow para más información.