Prawidłowe używanie git w małym zespole

14

Jaki byłby najłatwiejszy sposób prawidłowego używania git w małym zespole około 5 programistów z jednym serwerem z uruchomioną aplikacją na żywo?

ONOZ
źródło
5
W tym przypadku zapytałbym używając git. Korzystanie ze zdecentralizowanej kontroli źródła nie jest korzystne, gdy wszystkie osoby są w jednym pokoju z jednym serwerem dedykowanym. I wciąż jest narzut związany z ciągnięciem / pchaniem nad zatwierdzeniami.
Euforia
10
@Euforia zależy od narzędzi i przepływu pracy.
3
@ONOZ opisz bardziej szczegółowo swój obecny sposób pracy.
22
@Euphoric - Co za niezwykle wąskie nastawienie. Dla ułatwienia samodzielnego rozgałęziania i łączenia gitlub hgpokonania większości scentralizowanych VCS. Rozumiem, że ludzie denerwują się ludźmi, którzy nieustannie zastanawiają się nad tym, jak wspaniałe są DVCS, ale chowanie głowy w piasek i odmawianie uznania, że ​​możesz opracować inne i być może bardziej wydajne przepływy pracy z DVCS niż bez, jest równie złe.
Mark Booth,
8
@Euforia, używanie Git nie oznacza, że ​​kontrola źródła jest „zdecentralizowana”. Pracuję w małym zespole, korzystamy z Git i nadal mamy centralne repozytorium. Do tego naciskasz. Korzystanie z DVCS zwykle nie oznacza, że ​​każda osoba odciąga od każdej innej osoby bez centralnego punktu.
Kyralessa

Odpowiedzi:

11

Sugeruję utworzenie jakiegoś oddziału:

  • produkcja
  • mistrz
  • lokalny

Oddział produkcyjny to dział „na żywo”. Czy aplikacja jest obecnie w użyciu.

Gdy potrzebna jest aktualizacja, programista może przeciągnąć gałąź główną do gałęzi lokalnej. Następnie można zacząć kodować. Na koniec po prostu pociągnij i pchnij od lokalnego oddziału dewelopera do master. Kierownik projektu może zajrzeć do gałęzi głównej. Sprawdź to. A kiedy będzie gotowy, może połączyć produkcję z mistrzem. A teraz będziesz mieć nowe oprogramowanie.

sensorario
źródło
Jeśli jesteś w sytuacji doradczej lub korporacyjnej, możesz także chcieć mieć oddział UAT.
John MacIntyre
Zgadzam się, używam tego przepływu pracy.
Cheung
Czy mógłbyś wyjaśnić, dlaczego różnica między oddziałem lokalnym a głównym? Rozumiem, dlaczego miałbyś chcieć mieć działającą wersję produkcyjną, ale kiedy ściągniesz / wypchniesz zmiany, automatycznie się połączy nawet bez lokalnego oddziału, prawda?
Luc
1
Ponieważ gałąź lokalna może być nazwana jako XXX-nazwa-funkcji, masz gałąź główną jako połączenie wszystkich gałęzi funkcji, które chcesz produkować. Tak: ponieważ niektóre funkcje mogą nie zostać uwzględnione.
sensorario
7

Zacznij od prostej i rozbuduj bardziej złożony przepływ pracy, kiedy tylko zajdzie taka potrzeba.

Cokolwiek zrobisz, nie pozwól, aby udany model rozgałęziania Git był pierwszą rzeczą, którą ludzie zobaczą, to tylko je zdezorientuje i przytłoczy. Spójrz na to później, gdy będziesz mieć więcej doświadczenia.

Sugerowałbym, aby zacząć od centralnego gitrepozytorium i mieć wszystkich, w tym klon produkcyjny i testowy.

W swoim repozytorium git utwórz productiongałąź i testgałąź.

Programiści powinni pracować w swoich lokalnych lub zdalnych gałęziach funkcji, dopóki nie zostaną ukończone i połączone master. Stamtąd można je połączyć z testgałęzią w celu wdrożenia w środowisku testowym, a po przejściu testów można je połączyć z productiongałęzią.

W ten sposób zawsze możesz zobaczyć, co jest nowe i nieprzetestowane, co jest testowane, ale jeszcze nie wdrożone do produkcji i co jest faktycznie w produkcji.

Mark Booth
źródło
Ciekawa opinia, uważam ten wzór git rozgałęzienia być brakło dla git, z drugiej strony to może nie być tak oczywiste, non-git użytkowników.
wirrbel
@wirrbel nie ma takiej rzeczy, jak w modelu git rozgałęzienia można realizować niezależnie rozgałęzień modelu chec korzystania gitaby pasowały do pracy. Ten, który tutaj sugeruję, jest prosty i prawdopodobnie będzie lepszy dla niedoświadczonych gitużytkowników niż udany model rozgałęzienia Git, ale AsGbm może być lepszy dla bardziej doświadczonych gitużytkowników, ale nie jest odpowiedni dla niektórych zespołów (ludzie, którzy chcą utrzymać wiele wersji oddziały). Jak już powiedziałem, problem z AsGbm polega na tym, że może wyglądać na zbyt skomplikowane.
Mark Booth
Rozumiem co masz na myśli. Dla mnie zacząłem od AsGbm (a raczej dostosowałem go do moich potrzeb). Było idealnie, ponieważ mogłem zobaczyć, jak git może być używany inaczej niż svn
wirrbel
7

Mamy podobną sytuację - tyle że nie mamy dziesiątek aplikacji internetowych. Z powodzeniem korzystamy z udanego modelu rozgałęziania Git przez ostatni rok bez żadnych poważnych skarg.

Wyatt Barnett
źródło
Użyłem tego również do tworzenia modeli rozgałęziających w ciągu ostatnich kilku lat. To fantastyczny model.
John MacIntyre
Kciuki w górę za link
Rahul Gautam
0

Musisz mieć jedno główne repozytorium na serwerze integracyjnym i każdy programista musi go sklonować. Następnie po prostu pociągnij i pchnij. Opracuj nowe duże funkcje w osobnej branży. Żadna nauka o rakietach tutaj. Na serwerze na żywo - musisz także sklonować główne repozytorium. I dobrą praktyką jest mieć gałąź „na żywo”.

Nikolay Fominyh
źródło
2
archiwum git to kolejna opcja wdrażania na serwerze na żywo, przy założeniu, że tak naprawdę nie chcesz bezpośrednio edytować rzeczy na serwerze na żywo
jk.