Zaczniemy używać Gita (jeszcze go nie używam) i chcę zdefiniować przepływ pracy.
Mamy 4 zespoły w 4 różnych globalnych lokalizacjach, które wspólnie opracowują ten sam produkt. Każdy zespół jest właścicielem części kodu produktu, ale czasami muszą również wprowadzić zmiany w kodzie należącym do innych zespołów.
Czy istnieje zalecenie dotyczące przepływu pracy Git dla takiego środowiska?
Widziałem już ten artykuł , ale podejście tutaj brzmi: „tworzymy dodatkowe gałęzie tak rzadko, jak to możliwe”, i wierzę bardziej w podejście „gałąź dla każdej historii użytkownika”.
Również ten artykuł przedstawia ładne podejście.
Miałem na myśli posiadanie gałęzi głównej, stałej gałęzi dla każdej drużyny okresowo łączącej się z mistrzem oraz gałęzi historii użytkownika łączących się z gałęziami zespołów. Czy to ma sens, czy nie zadziałałoby?
źródło
Odpowiedzi:
Spójrz na udany model rozgałęziania Git , który ma przyjemną strategię rozgałęziania w zakresie rozwoju funkcji we wszystkich wydaniach.
Możesz zaimplementować coś podobnego z jednym dodatkowym poziomem dla gałęzi zespołu między gałęzią „rozwijaj” a „gałęziami funkcji”. Posiadanie oddziałów zespołu pozwoliłoby również dwóm zespołom na bardziej efektywną współpracę poprzez połączenie oddziałów zespołu.
źródło
Powiedziałbym, że każdy zespół ma swoją własną wersję repozytorium, z jednym globalnym repozytorium, do którego wszyscy się zobowiązują (jak w jądrze Linuksa, gdzie repozytorium Linus JEST jądrem i centralnym repozytorium).
Następnie, aby utrzymać kod produktu, możesz użyć podmodułów, takich jak @larsmans powiedział, wtedy każdy zespół może pracować głównie nad częścią, która jest dla nich najważniejsza, a jeśli muszą pracować z inną częścią, mogą to zrobić, ale będę musiał pamiętać o zaktualizowaniu submodułu, i na tym właśnie polega problem (ponieważ bardzo łatwo jest popełnić błąd podczas używania git, na szczęście łatwo jest od niego uciec).
Ale ponieważ twoje zespoły są do tego przyzwyczajone i zdają sobie sprawę, że zmieniają inny kod zespołu, łatwiej jest im pamiętać o aktualizacji podmodułu przed zmianą modułu obcego.
źródło