2009-10-31 14 views
5

Jestem nowym narzędziem do kontroli wersji git i rozproszonych, ale udało mi się, bez większego potknięcia, uzyskać init moje własne lokalne źródło, skonfigurować prywatne zdalne repozytorium (źródło) przez ssh na własną rękę hostem sieci Web i wykonaj podstawowe ustawienia od pull i od wzorca do punktu początkowego. (Testuję nawet klon!)Kolejne kroki z Git: ustanowienie spójnego przepływu pracy

Myślę, że mam pod kontrolą przepływ pracy jednokierunkowej, git. Teraz jednak zaczynam myśleć o tym, jak poradzić sobie z przenoszeniem między programowaniem, wersją beta i produkcją. Większość samouczków, o których mówiłem, mówi o różnych użytkownikach łączących się i klonujących oraz ciągających i pchających, ale w moim przypadku to tylko ja, obsługując różne rzeczy.

Mam nadzieję, że doświadczony użytkownik git mógłby zapewnić mi lepszy wgląd w przebieg mojej pracy i przedstawić kilka sugestii, w jaki sposób poradziłby sobie z łączeniem, oddziałami itp. (Rzeczy, które nie są mi jeszcze zbyt dobrze znane/wygodne).

Oto różne maszyny/lokalizacje mam:

  1. zdalnego magazynu głównego git: ssh: //[email protected]/git/myproject.git
  2. główna serwera, główny rozwój box (gdzie siedzę, prywatnie, a nie większość pracy)
  3. zdalny serwer wWW, testy beta (licowa publiczne): http://beta.example.com (przetestować moją pracę dev przed rozpoczęciem produkcji)
  4. zdalny serwer wWW, Zakład produkcyjny: http://example.com (gdzie prawdziwi ludzie, miejmy nadzieję, korzystają z witryny)
  5. (Okazjonalnie) podróżowanie po laptopie (uruchamianie własnego lokalnego serwera WWW).

Jak sobie z tym poradzisz? Z góry dziękuję.

Odpowiedz

5

Nie widzę sensu w tworzeniu nadmiernie skomplikowanego przepływu pracy tutaj, "centralna" konfiguracja sprawi, że po prostu dobrze IMHO.

, więc masz głównego pilota, który powinien być twoim centralnym punktem, w którym przechowywana jest cała rozwojowa nazwa zdalna "origin". pracujesz nad swoim pudełkiem, robisz swoje zobowiązania i od czasu do czasu wypychasz swoje rzeczy do "pochodzenia". gdy myślisz, że nadszedł czas na wydanie, otagujesz swoje rzeczy (prawdopodobnie jako wersję beta), wypchnij je do źródła, przejdź do swojego serwera beta i wyciągnij ten tag do publicznego testowania. Powtarzaj, dopóki nie dostaniesz wersji, którą możesz wyciągnąć na maszynę produkcyjną ...

w odniesieniu do twojego pytania A/B (prawdopodobnie Twojego komputera i laptopa): oczywiście, że można to zrobić, ale nie po prostu popychając swoje zmiany z A lub B w miejscu pochodzenia. Załóżmy, że po prostu popchnąłeś swoją pracę na maszynie A do "pochodzenia", zadzwoń do tego stanu "17". Teraz twoja praca dalej, tworzenie lokalnych stanów "18" do "20". Jeśli "pochodzenie" jest nadal w "17", możesz przesunąć swoje zmiany 18-20 na pochodzenie bez problemów, ponieważ każdy krok jest bezpośrednim potomkiem poprzedniego stanu. to się nazywa "szybkim do przodu" w git.

Jednak jeśli dojdzie do wypchnięcia z B, linia "bezpośrednich potomków" zostanie zerwana, a naciśnięcie z A zakończy się niepowodzeniem.Rozwiązanie jest proste, choć: A ma wyciągnąć z pochodzenia, łączących wszystkie zmiany wprowadzone przez B do A, a to może popchnąć ...

nadzieję, że wyjaśnia rzeczy ..

2

Jeśli pracujesz sam, to tak naprawdę nigdy nie musisz rozgałęziać się lub scalać, jeśli nie chcesz. Git sprawia, że ​​robi się to trochę łatwiejsze niż niektóre inne systemy kontroli wersji, więc możesz używać gałęzi tak, jak możesz używać tagów gdzie indziej. Zdecydowanie polecam książkę O'Reilly na ten temat - jest całkiem dobrze napisana.

+0

Jeśli jednak nie używam oddziału, czy mogę poradzić sobie z wprowadzeniem zmiany w Systemie A, kolejną zmianą w Systemie B, a następnie przesunięcie ich obu do miejsca pochodzenia? Chyba to tam utknąłem ... – thornomad

1

Tak, to może obsługiwać zmiana z A, inna z B, po obydwu naciśniętych. Jednak jeden z nich będzie musiał wyciągnąć z pochodzenia, zanim będzie mógł naciskać. Ponieważ jeden z tych dwóch elementów byłby "nieaktualny" z pochodzeniem, ponieważ drugi był zmuszony do powstania.

Powiązane problemy