Mein Team verwendet das Git Stable Mainline-Verzweigungsmodell und wir sind dabei, den ersten Release-Zweig zu erstellen. Nach dem, was ich bisher gelesen habe, klingt es so, als ob Release-Zweige vom Master-Zweig getrennt und nie wieder vollständig zum Master zusammengeführt werden. Wenn stattdessen ein Fix für den Release-Zweig vorgenommen wird, wird dieser normalerweise in den Master-Zweig zurückgesucht. Dies ist für mich sinnvoll, da Sie die aktuelle Version vollständig von der Entwicklung der nächsten Version trennen möchten und gleichzeitig mit der Vorbereitung der aktuellen Version die nächsten Funktionen auf dem Master entwickeln möchten.
Wie lange sollten diese Release-Zweige aufbewahrt werden? Gibt es Fälle, in denen sie vollständig wieder zum Master zusammengeführt werden sollten?
How long should these release branches be kept around for?
Solange Sie erwarten, eine Fehlermeldung für diese Version zu erhalten, die Sie aus dem Quellcode reproduzieren möchten. Ich würde überhaupt keinen Release-Zweig entfernen, da ein Zweig einen kleinen Kilobyte-Footprint auf dem Server hat. Nur das Delta kostet Festplattenspeichercherry picking
Jedes Commit auf dem Release- Zweig in Master odermerging
Release in Master ist technisch dasselbe. Akzeptieren Sie, dass Sie dascherry picks
in der Git-Historie nicht "sehen" . Daher würde ich es vorziehen , wennmerging
jeder Fix mit der Option gits wieder in den Master zurückgeführt wird ,--no-ff
sodass im Verlauf der zusätzliche Release-Zweig angezeigt wird .Antworten:
Wie lange sollten diese Zweige aufbewahrt werden?
Die erste Antwort, die mir hier einfällt, lautet:
Warum erstellen Sie überhaupt einen Release-Zweig?
Wenn Sie eine Version im Produktionsbetrieb unterstützen möchten, sollte sie so lange funktionieren, wie diese Version bei Ihren Kunden lebt. (Sagen wir LTS-Unterstützung, Sie könnten mehrere solcher Zweige haben, was die Dinge etwas komplexer macht.)
Wenn Sie Stabilisierungsarbeiten von laufenden Neuentwicklungen trennen, benötigen Sie diesen Zweig nach der Bereitstellung der Version nicht mehr wirklich. Hier würde dies auf eine kontinuierliche Lieferpipeline hindeuten. Alle Fehler werden in der nächsten Version behoben, die so häufig wie möglich auftreten würde. Einige drängen darauf, den Hauptzweig als den stabilen Zweig zu betrachten, der mehrmals täglich bereitgestellt wird. Andere werden mit ihren Sprints synchronisiert und alle zwei bis drei Wochen veröffentlicht.
Sollten Sie es wieder vollständig in Master zusammenführen?
Wie Sie vermuten, hängt alles davon ab, warum Sie diese Verzweigungsstrategie übernommen haben. Da der Zweig nie wieder verwendet wird, sollten Sie ihn wie einen Feature- oder Bugfix-Zweig behandeln. Wahrscheinlich würden Sie ihn wieder mit dem Master zusammenführen und ihn vergessen.
Wenn Sie jedoch den LTS-Stil anstreben, werden Sie ihn wahrscheinlich nicht wieder zusammenführen, insbesondere wenn Sie mehrere solcher Zweige haben. Hier würden Sie den Fix auf alle Release-Zweige anwenden und einen von ihnen auswählen , um diesen Fix wieder in Master zusammenzuführen. In diesem Szenario möchten Sie es als letztes wie jeden anderen Feature-Zweig behandeln, in den Änderungen vom Master übernommen und Konflikte dort und nicht im Master gelöst werden.
Ohne mehr über Ihren Produktlebenszyklus und den Workflow Ihres Teams zu wissen, ist es schwierig, hier eine genauere Beratung zu finden.
quelle