Nous allons commencer à utiliser Git (pas encore) et je veux définir le workflow.
Nous avons 4 équipes réparties sur 4 sites mondiaux différents, développant ensemble le même produit. Chaque équipe possède une partie du code du produit, mais parfois elle doit également apporter des modifications au code appartenant à d'autres équipes.
Existe-t-il une recommandation pour un workflow Git pour un tel environnement?
J'ai déjà vu cet article , mais l'approche ici est "nous créons des branches supplémentaires aussi rarement que possible", et je crois davantage à l'approche "branche pour chaque user story".
En outre, cet article présente une belle approche.
J'avais en tête d'avoir une branche master, une branche permanente par équipe fusionnant périodiquement en master et une branche par user-story fusionnant avec les branches des équipes. Est-ce que cela a du sens, ou cela ne fonctionnerait pas?
la source
Réponses:
Jetez un œil à Successful Git Branching Model , qui a une belle stratégie de branchement pour le développement de fonctionnalités à travers les versions.
Vous pouvez implémenter quelque chose de similaire avec un niveau supplémentaire pour les branches d'équipe entre la branche «développer» et les «branches fonctionnelles». Le fait d'avoir des branches d'équipe permettrait également à deux équipes de collaborer plus efficacement en fusionnant leurs branches d'équipe.
la source
Je dirais que chaque équipe a sa propre version du référentiel, avec un référentiel global où tout le monde s'engage (comme dans le noyau Linux, où le référentiel Linus EST le noyau et le référentiel central).
Ensuite, pour maintenir le code produit, vous pouvez utiliser des sous-modules comme @larsmans l'a dit, puis chaque équipe ne peut travailler principalement que sur la partie qui est la plus importante pour elle et si elle a besoin de travailler avec une autre partie, elle peut le faire, mais elle devra se rappeler de mettre à jour le sous-module, et c'est là que réside le problème (car il est très facile de se tromper en utilisant git, heureusement, il est également facile de s'en éloigner).
Mais comme vos équipes sont habituées à cela et savent qu'elles changent d'autres codes d'équipe, il est plus facile pour elles de se rappeler de faire la mise à jour du sous-module, avant de changer un module étranger.
la source