2012-04-20 10 views
5

Jak poleciłbyś zarządzać specyficznymi dla klienta funkcjami i zmieniać żądania w zakresie Git-flow, czy ogólnie Git? Czy funkcje specyficzne dla klienta powinny znajdować się w osobnej gałęzi poświęconej klientowi? (Każdy klient ma swój własny oddział z gałęzi rozwijanej.) A może powinien być w osobnym repozytorium? (Każdy klient ma dedykowane repozytorium, a głównym repozytorium jest naszym głównym repozytorium.)Funkcje Git-flow i specyficzne dla klienta

+0

ciekawe pytanie. Ale czy jest to kwestia git-flow, czy tylko kwestia git? (Zauważ, że jestem nowy zarówno w git, jak i git-flow, więc nie jestem w tym dziwaczny). –

+0

Cóż, próbujemy podążać za strukturą Git-Flow, ale to może dotyczyć Git w ogóle. Na przykład. jakie są zwyczajowe praktyki postępowania z takimi przypadkami. – Dario

Odpowiedz

2

Utworzę osobne repozytorium dla bazy i klientów. Klienci mieliby bazę, która miałaby oddział zdalny, będący Twoją bazą. Kiedy klient potrzebuje nowej wersji, w ten sposób jest znacznie łatwiej. Jeśli umieścisz wszystkich klientów w jednym repozytorium, będziesz musiał ręcznie zmienić gałąź integracji/dewelopera przed uruchomieniem wydania Git Flow. Ograniczyłoby to Twoją zdolność do pracy z wieloma wersjami dla różnych klientów.

4

Wygląda na to, że masz bazę kodową używaną przez wszystkich klientów, a następnie masz "hacki" dla specyficznej dla klienta funkcjonalności.

Moim zdaniem, masz cały kod "podstawowy" w gałęzi głównej. Wszyscy klienci mieliby gałąź klienta. Uważaj i wiedz, gdzie wprowadzane są Twoje zmiany.

Co jakiś czas upewnij się, że zmieniasz bazę klientów, zasadniczo podnosząc ją do kodu bazowego, a następnie odtwarzając wszystkie swoje zmiany.

Rebasing może być dość zagmatwany, dopóki nie pojawi się w akcji.

Użycie kolejnych liczb zatwierdzeń. Przyjęcia nie są numeryczne w rzeczywistości

 
Master is at commit 10 
\ 
    Branch has commits 10, 11, 12, 13, 14, 15 (notice it has commit 10 as well) 
| 
Master commits 16, 17 


When you rebase: 
    Master has 10, 16, 17. 
    Branch has 10, 16, 17, 11, 12, 13, 14, 15 

Kolejność tutaj jest bardzo ważna. Rebase przewija gałąź do 10, stosuje 16 i 17, a następnie odtwarza zmiany 11, 12, 13, 14 i 15.

W tym momencie, dopóki nie ma konfliktów, oddział ma data z wzorcem I ma zmiany specyficzne dla klienta.