Vamos a comenzar a usar Git (todavía no lo uso), y quiero definir el flujo de trabajo.
Tenemos 4 equipos en 4 ubicaciones globales diferentes, desarrollando juntos el mismo producto. Cada equipo posee una parte del código del producto, pero a veces también tienen que hacer cambios en el código propiedad de otros equipos.
¿Hay alguna recomendación para un flujo de trabajo de Git para dicho entorno?
Ya he visto este artículo , pero el enfoque aquí es "creamos sucursales adicionales tan raramente como sea posible", y creo más en el enfoque de "sucursal para cada historia de usuario".
Además, este artículo presenta un buen enfoque.
Tenía en mente tener una rama maestra, una rama permanente por cada equipo que se fusionaba periódicamente con el maestro, y una rama por historia de usuario fusionándose con las ramas de los equipos. ¿Tiene sentido o no funcionaría?
fuente
Respuestas:
Eche un vistazo al modelo de ramificación Git exitoso , que tiene una buena estrategia de ramificación para el desarrollo de características en todas las versiones.
Podría implementar algo similar con un nivel adicional para las ramas de equipo entre la rama 'desarrollar' y las 'ramas de características'. Tener sucursales de equipo también permitiría que dos equipos colaboren de manera más efectiva mediante la fusión entre sus sucursales de equipo.
fuente
Diría que cada equipo tiene su propia versión del repositorio, con un repositorio global al que todos se comprometen (como en el kernel de Linux, donde el repositorio de Linus ES el kernel y el repositorio central).
Luego, para mantener el código del producto, puede usar submódulos como dijo @larsmans, luego cada equipo solo puede trabajar principalmente en la parte que es más importante para ellos y si necesitan trabajar con otra parte, pueden hacerlo, pero tendrá que recordar actualizar el submódulo, y aquí es donde radica el problema (dado que es muy fácil equivocarse al usar git, afortunadamente también es fácil alejarse de ellos).
Pero dado que sus equipos están acostumbrados a esto y son conscientes de que están cambiando el código de otro equipo, es más fácil para ellos recordar hacer la actualización del submódulo, antes de cambiar un módulo externo.
fuente