Estoy trabajando en un flujo de trabajo de git para implementar en un equipo pequeño. Las ideas centrales en el flujo de trabajo:
- Hay un maestro de proyecto compartido en el que todos los miembros del equipo pueden escribir
- Todo el desarrollo se realiza exclusivamente en ramas de características
- Las ramas de características son revisadas por código por un miembro del equipo que no sea el autor de la rama
- La rama de características finalmente se fusiona en el maestro compartido y el ciclo comienza nuevamente
El artículo explica los pasos en este ciclo en detalle:
https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md
¿Tiene sentido o me estoy perdiendo algo?
Creo que te estás perdiendo el tema Integración continua. Debería ser parte de cada configuración de desarrollo.
Con las ramas de características tiene el problema, que no se integra continuamente, sino solo después de que se completa una característica.
Si la característica ramificada es de corta duración, esto podría ser aceptable, pero definitivamente es algo que uno debería considerar.
Otra alternativa es configurar compilaciones de CI para cada rama de características. Esto sí ayuda, pero no es integración. Esto se vuelve obvio una vez que encuentra su primer error que no aparece en la Característica A ni en la Característica B, sino en el momento en que integra la Característica A y B
Una tercera alternativa es hacer que la fusión en alguna rama de integración forme parte de la compilación de CI. Esta es una verdadera integración, y en realidad funciona razonablemente bien con git si el trabajo está algo separado, pero causa conflictos de fusión durante la compilación que resultan en compilaciones fallidas.
fuente
Puedes inspirarte en gitflow o Twgit .
gitflow resume su enfoque como:
Twgit se describe a sí mismo de la siguiente manera:
Ambas herramientas están disponibles en github .
fuente