Wir werden Git verwenden (noch nicht), und ich möchte den Workflow definieren.
Wir haben 4 Teams an 4 verschiedenen Standorten weltweit, die gemeinsam das gleiche Produkt entwickeln. Jedes Team besitzt einen Teil des Produktcodes, aber manchmal müssen sie auch Änderungen am Code anderer Teams vornehmen.
Gibt es eine Empfehlung für einen Git-Workflow für eine solche Umgebung?
Ich habe diesen Artikel bereits gesehen , aber der Ansatz hier lautet "Wir erstellen so selten wie möglich zusätzliche Zweige", und ich glaube eher an den Ansatz "Zweig für jede User Story".
Auch dieser Artikel präsentiert einen schönen Ansatz.
Ich hatte vor, eine Hauptniederlassung, eine permanente Niederlassung pro Team, die regelmäßig mit dem Master zusammengeführt wird, und eine Zweigstelle pro User-Story, die mit den Niederlassungen der Teams zusammengeführt wird. Macht es Sinn oder würde es nicht funktionieren?
quelle
Antworten:
Werfen Sie einen Blick auf das erfolgreiche Git-Verzweigungsmodell , das eine gute Verzweigungsstrategie für die Feature-Entwicklung über Releases hinweg bietet.
Sie könnten etwas Ähnliches mit einer zusätzlichen Ebene für Teamzweige zwischen dem Zweig "Entwickeln" und den Zweigen "Feature" implementieren. Mit Teamzweigen könnten auch zwei Teams effektiver zusammenarbeiten, indem sie zwischen ihren Teamzweigen zusammengeführt werden.
quelle
Ich würde sagen, dass jedes Team eine eigene Version des Repositorys hat, mit einem globalen Repository, zu dem sich jeder verpflichtet (wie im Linux-Kernel, wo das Linus-Repository der Kernel und das zentrale Repository ist).
Dann könnten Sie zur Pflege des Produktcodes Submodule verwenden, wie @larsmans sagte, dann kann jedes Team nur an dem Teil arbeiten, der für sie am wichtigsten ist, und wenn sie mit einem anderen Teil arbeiten müssen, können sie es tun, aber sie Ich muss daran denken, das Submodul zu aktualisieren, und hier liegt das Problem (da es sehr leicht ist, bei der Verwendung von git etwas falsch zu machen, ist es zum Glück auch einfach, sich von ihnen zu entfernen).
Da Ihre Teams daran gewöhnt sind und wissen, dass sie anderen Teamcode ändern, fällt es ihnen leichter, sich daran zu erinnern, das Submodul-Update durchzuführen, bevor sie ein Fremdmodul ändern.
quelle