Mamy następującą konfigurację: trzy aplikacje, które są podobne do siebie ze wspólnym kodem wyodrębnione w ramach. Każda aplikacja jest zarządzany we własnym repozytorium git i zawiera ramy jako modułem git.Git przepływu pracy dla różnych wersji ram
Problemem jest to, że aplikacje są obecnie rozwijane równolegle z nowych funkcji dodawanych do ram, że inne aplikacje nie muszą obsługiwać od razu. Obecnie mamy różne gałęzie struktury dla wszystkich aplikacji. Jedna aplikacja korzysta z głównej gałęzi frameworka, ponieważ większość nowych funkcji została po raz pierwszy wprowadzona w tej aplikacji.
ramowe gałęzie
- master (używany przez App A)
- appB
- appc
Kiedy nowa funkcja zostanie wprowadzona w appB że potrzebne zmiany w ramach zmiany te wykonane do oddziału appB. Jeśli te zmiany były później potrzebne w App A, aplikacja branchB została scalona w master. Oznacza to, że wszystkie zmiany w appB musiały zostać połączone w master.
ten system działał, ale miał pewne wady
- łączenia funkcji z jednego oddziału do drugiego oznaczało musieliśmy scalić wszystkie zmiany
- łatwo stracić śledzić, co zostało połączone już ani co zamierza zostać połączone podczas scalania jednego oddziału do innego
- zaznaczania zmian łamiącym została wykonana przy użyciu popełnić wiadomości, które sprawiły, że ostatni punkt nawet ważniejszą
Jesteśmy cu Rrently szuka nowego przepływu pracy. I było myśleć o następujących branżach
- mistrza
- Appa
- appB
- appc
Więc dla każdej aplikacji jednej gałęzi i oddział główny, który zawiera wszystkie zmiany. Kiedy nowe funkcje zostały opracowane oddział funkcja powinna zostać utworzona, a następnie zastosowane do opanowania, jak również do wszystkich gałęzi aplikacji funkcja jest potrzebne od razu. Inne aplikacje mogą łączyć gałąź funkcji, gdy będą jej później potrzebować.
widzę następujące problemy z tym
- W jaki sposób można scalić gałąź funkcji na wielu oddziałach i tylko scalić zmiany, które miały miejsce w branży. Znam „git rebase na ...”, ale nie jestem pewien, czy mogę użyć tego polecenia wielokrotnie.
- Czy należy używać git cherry-pick do łączenia funkcji w wiele oddziałów? Wolałbym tego nie robić, ponieważ sądzę, że będzie to podatne na błędy, gdy nie wybierzesz wszystkich zmian wprowadzonych w gałęzi funkcji.
- Jak śledzić, która funkcja (gałąź) została zastosowana w danej aplikacji. Czy mogę używać oddział --no-seryjnej czy będzie to działać tylko wtedy, gdy oddziały mają tę samą przodka?
Czy mój sposób jest najlepszym sposobem na osiągnięcie tego celu, czy powinienem całkowicie przemyśleć moją strategię?
Witam, Silver, czy możesz zaktualizować te pytania w przepływie pracy, który wprowadziłeś i jak działa. Mam do czynienia z tą samą sytuacją i też się mylę. Dlatego jestem zainteresowany tym, co zrobiłeś. – BlinkyBill