2017-08-25 1 views
2

Meine kleine Gruppe von Entwicklern erstellt und pflegt Schnittstellen zu verschiedenen Versionen des Kernprodukts unseres Unternehmens. Die verschiedenen Versionen unseres Kernprodukts sind größtenteils ähnlich, aber es gibt einige Unterschiede, die es erfordern, dass wir unseren Code in einer separaten Verzweigung für jede Version aufbewahren. Alles ist im selben Repository.Git - Änderungen an mehreren Hauptniederlassungen vornehmen

Wir mussten kürzlich zu Git wechseln und versuchen, den besten Workflow für die gleiche Änderung in allen unseren Niederlassungen zu finden. Bisher haben wir uns bei jedem Commit auf Cherry Pick verlassen. Es ist mühsam und es muss einen besseren Weg geben. Hier

ist ein Beispiel dafür, was wir tun:

V1 Master: ... (A1)--(B1)--(C1)---------(M) 
           \  /
V1 Feature:     (D)----(E) 
            /
V2 Master: ... (A2)--(B2)--(C2) <--? 

Vor unserer V1-Funktion auf V1 Master Zusammenführen wir auf V1 Master rebase. Dies ist einfach und sinnvoll, da V1 Feature von V1 Master abgezweigt wurde. Jetzt wollen wir aber dieselben D- und E-Commits für V2-Master anwenden. Die Zweige sind ähnlich genug, dass diese Commits keine Konflikte verursachen sollten. Im Moment wählen wir Cherry einzeln und in Reihenfolge.

Ich habe herumgesucht und ich kann den besten Weg nicht herausfinden, denn Cherry Pick kann nicht der richtige Weg sein, dies zu tun.

+0

Mögliche Duplikate von [Mehrere Git Release-Zweige für mehrere Kunden verwalten] (https://stackoverflow.com/questions/39035631/manage-multiple-git-release-branches-for-multiple-customers) – max630

Antwort

0

Hinweis: Ihr Schema zeigt keine Rebase, sondern eine Zusammenführung.

Und Rosinenpickerei funktioniert für multiple commits in one command.
Es ist eine gute Lösung, sofern die Niederlassung von denen Sie Rosinenpickerei (masterV1) wird nie

das, weil duplicates a commit Kirsche-Pick ist zum Rosinenpickerei Zielmietstation (masterv2) zusammengeführt werden.
Und Sie müssen sicher sein, dass die Commits, die Sie sammeln, haben no functional dependencies basierend auf früheren Commits (der Quelle Zweig).

Verwandte Themen