W jednym z moich projektów uniwersyteckich jestem w grupie 4 programistów, których zadaniem jest opracowanie aplikacji internetowej od zera. Wszyscy mamy bardzo podstawową wiedzę na temat Gita i postanowiliśmy pójść z nim na współpracę w oparciu o kod, mamy repo ustawione i wszyscy są współpracownikami GitHub.Używanie Git do współpracy przy 4-osobowym projekcie
Przez ostatnie kilka miesięcy po prostu klonowaliśmy i wysyłaliśmy zamówienia do/z głównego oddziału, a to się udało. Ostatnio jednak zdarzały się sytuacje, w których dwie lub więcej osób pracowało nad bazą kodu naraz i często kończyło się to na tym, że niektórzy ludzie byli w tyle za zobowiązaniami i musieli sklonować repo przed wprowadzeniem, co czasami kończy się zmianą Stracony.
Dzisiaj jeden z członków grupy mówił o posiadaniu gałęzi "rozwojowej", którą wszyscy klonujemy i zobowiązujemy się do niej, a następnie połączyliśmy się z głównym oddziałem na końcu każdego sprintu. Próbowaliśmy tego, ale nie zauważyliśmy poprawy, ponieważ wciąż pracujemy z tej samej podstawy kodu, więc pojawia się ten sam problem, co poprzednio.
Ktoś inny wpadł na pomysł rozwidlenia (jest to dla mnie coś nowego) główne repozytorium, pracę nad nim, a następnie wysyłanie żądań ściągnięcia do głównego repozytorium, które można następnie połączyć. W praktyce brzmi to jak dobry plan, ponieważ zmiany mogą zostać sprawdzone i poprawione, jeśli złamie kod. I tak to rozumiem.
Ale jak już powiedziałem, wszyscy jesteśmy nowi dla Git i mamy bardzo podstawowe pojęcie o całej tej idei. Jaki jest standardowy sposób zorganizowania zespołu 4 programistów pracujących nad repozytorium Git? Przejrzałem dokumentację Git, ale jest to dość mylące dla kogoś, kto tylko wie, jak klonować i zatwierdzać do głównej gałęzi.
Dziękuję za pomoc!
Piszesz "klonuj repo przed popełnieniem, co czasem kończy się utratą ich zmian". Jak to możliwe, że jakiekolwiek zmiany mogą zostać utracone? Czy na pewno wyciągasz zmiany z gałęzi głównej? Jeśli to zrobisz, nie stracisz danych. Równoległe zmiany na tych samych plikach zostaną automatycznie połączone przez git. Alternatywnie po prostu pojawi się konflikt. – harpun
Zdaję sobie sprawę, jak głupi jest mój sposób myślenia, ale zrozumiałem, że kiedy dwoje ludzi pracuje nad tym samym plikiem, a obie osoby popełniają, ten, który popełnił ostatni, nadpisuje zmiany osoby, która się do nich zobowiązuje. Wydaje mi się, że dostaliśmy kilka błędów związanych z konfliktami, które nieco nas podbiły. –
Wypróbuj http://try.github.com/levels/1/challenges/1 i http://atlassian.com/git/tutorial/git-basics na dobre tutoriale git. Korzystanie z [scentralizowanego przepływu pracy] (http://atlassian.com/git/workflows#!workflow-centralized) powinno wystarczyć na samym początku. Nie trzeba zbytnio komplikować :) – harpun