Składniki przepływu usługi GitHub
W tej lekcji zapoznamy się z następującymi składnikami przepływu usługi GitHub:
- Odgałęzienia
- Zatwierdzenia
- Żądania ściągnięcia
- Przepływ w usłudze GitHub
- Przepływ usługi Git
Składniki usługi GitHub Flow
Zanim przejdziemy do przepływów pracy specyficznych dla usługi GitHub, warto zrozumieć, że usługa GitHub Flow jest oparta bezpośrednio na podstawowych pojęciach usługi Git.
Usługa Git udostępnia narzędzia do śledzenia zmian w kodzie i zarządzania nimi w czasie. Usługa GitHub bazuje na tym, ułatwiając korzystanie z tych narzędzi z funkcjami takimi jak gałęzie, zatwierdzenia, żądania ściągnięcia i interfejsy wizualne do współpracy. Zacznijmy od przyjrzenia się sposobom działania tych pojęć w usłudze GitHub.
Co to są gałęzie
W ostatniej sekcji utworzyliśmy nowy plik i nową gałąź w repozytorium.
Gałęzie są istotną częścią środowiska usługi GitHub. Umożliwiają one wprowadzanie zmian bez wpływu na gałąź domyślną.
Twoja gałąź to bezpieczne miejsce do eksperymentowania z nowymi funkcjami lub poprawkami. Jeśli popełnisz błąd, możesz przywrócić zmiany lub wypchnąć więcej zmian, aby naprawić błąd. Zmiany nie zostaną zaktualizowane w gałęzi domyślnej do momentu scalenia gałęzi.
Uwaga
Alternatywnie możesz utworzyć nową gałąź i wyewidencjonować ją przy użyciu narzędzia git w terminalu. Polecenie byłoby następujące: git checkout -b newBranchName
Co to są zatwierdzenia
W poprzedniej lekcji dodano nowy plik do repozytorium, wypychając zatwierdzenie. Przyjrzyjmy się krótko tym, jakie są zatwierdzenia.
Zatwierdzenie to zmiana jednego lub większej liczby plików w gałęzi. Każde zatwierdzenie jest śledzone przez unikatowy identyfikator, sygnaturę czasową i współautora, niezależnie od tego, czy zostało wykonane za pośrednictwem wiersza polecenia, czy bezpośrednio w interfejsie internetowym usługi GitHub. Zatwierdzenia zapewniają jasny dziennik inspekcji dla każdej osoby przeglądającej historię pliku lub połączonego elementu, na przykład problem lub żądanie ściągnięcia.
Zatwierdzenie można utworzyć przy użyciu narzędzia Git w terminalu za pomocą polecenia:
git commit -m "Add a helpful commit message"
W repozytorium git plik może istnieć w kilku prawidłowych stanach, ponieważ przechodzi przez proces kontroli wersji. Podstawowe stany pliku w repozytorium Git są nieśledzone i śledzone.
Nieśledzony: początkowy stan pliku, gdy nie jest jeszcze częścią repozytorium Git. Usługa Git nie wie o jego istnieniu.
Śledzony: śledzony plik to plik, który jest aktywnie monitorowany przez usługę Git. Może to być jeden z następujących podstanów:
- Niezmodyfikowany: plik jest śledzony, ale nie został zmodyfikowany od ostatniego zatwierdzenia.
- Zmodyfikowane: plik został zmieniony od ostatniego zatwierdzenia, ale te zmiany nie są jeszcze przygotowane do następnego zatwierdzenia.
- Przygotowany: plik został zmodyfikowany, a zmiany zostały dodane do obszaru przejściowego (nazywanego również indeksem). Te zmiany są gotowe do zatwierdzenia.
- Zatwierdzone: plik znajduje się w bazie danych repozytorium. Reprezentuje najnowszą zatwierdzoną wersję pliku.
Te stany pomagają zespołowi zrozumieć stan każdego pliku i miejsce, w którym znajduje się w procesie kontroli wersji.
Co to są żądania ściągnięcia?
Żądanie ściągnięcia to mechanizm używany do sygnalizowania, że zatwierdzenia z jednej gałęzi są gotowe do scalenia z inną gałęzią.
Członek zespołu przesyłający żądanie ściągnięcia prosi co najmniej jednego recenzenta o zweryfikowanie kodu i zatwierdzenie scalania. Ci recenzenci mogą komentować zmiany, dodawać własne lub prowadzić dalszą dyskusję za pośrednictwem samego żądania ściągnięcia.
Usługa GitHub obsługuje również żądania ściągnięcia w wersji roboczej, co umożliwia otwarcie żądania ściągnięcia, które nie jest jeszcze gotowe do przeglądu.
Po zatwierdzeniu zmian (jeśli jest to wymagane), gałąź źródłowa żądania ściągnięcia (gałąź porównawcza) zostanie scalona z gałęzią podstawową.
Teraz, gdy już wiesz, jak działają gałęzie, zatwierdzenia i żądania ściągnięcia, przyjrzyjmy się sposobom ich łączenia w usłudze GitHub Flow.
Przepływ w usłudze GitHub
Przepływ usługi GitHub to prosty przepływ pracy, który ułatwia bezpieczne wprowadzanie i udostępnianie zmian. Wspaniale jest wypróbować pomysły i współpracować z zespołem przy użyciu gałęzi, żądań ściągnięcia i scalania.
Uwaga
Przepływ usługi GitHub jest jednym z kilku popularnych przepływów pracy. Inne obejmują przepływ usługi Git i programowanie oparte na magistrali.
Teraz, gdy znamy podstawy usługi GitHub, możemy zapoznać się z przepływem usługi GitHub i jego składnikami.
- Zacznij od utworzenia gałęzi, aby zmiany, funkcje lub poprawki nie wpływały na gałąź główną.
- Następnie wprowadź aktualizacje w gałęzi . Jeśli przepływ pracy go obsługuje, możesz wdrożyć zmiany z tej gałęzi, aby przetestować je przed scaleniem.
- Teraz otwórz żądanie ściągnięcia, aby zaprosić opinię i rozpocząć przegląd.
- Następnie przejrzyj komentarze i wprowadź wszelkie niezbędne aktualizacje na podstawie opinii twojego zespołu.
- Na koniec, gdy masz pewność co do zmian, uzyskaj zatwierdzenie i scal żądanie ściągnięcia z gałęzią główną.
- Następnie usuń gałąź, aby zachować czyste repozytorium i uniknąć używania nieaktualnych gałęzi.
Przepływ usługi Git
Chociaż usługa GitHub Flow to lekki przepływ pracy przeznaczony do ciągłego dostarczania, przepływ usługi Git jest bardziej ustrukturyzowanym modelem rozgałęziania często używanym w środowiskach opartych na wydaniach. Przepływ usługi Git był dłuższy niż usługa GitHub Flow i nadal może być widoczny termin master używany zamiast main jako gałąź domyślna.
Typy gałęzi przepływu usługi Git
Przepływ usługi Git używa kilku długotrwałych i tymczasowych gałęzi:
- master: zawsze odzwierciedla kod gotowy do produkcji.
- develop: zawiera najnowsze prace programistyczne dla następnej wersji.
-
feature/*: Służy do tworzenia nowych funkcji; po zakończeniu odgałęziony z
developi scalony z powrotem. -
release/*: Przygotowuje nową wersję produkcyjną z
develop; umożliwia ostateczne testowanie i drobne poprawki błędów. -
poprawka/*: służy do szybkiego stosowania poprawek w środowisku produkcyjnym; odgałęziony z
master.
Jak działa proces przepływu usługi Git
- Deweloperzy tworzą gałęzie funkcji od
develop, aby tworzyć nowe funkcje. - Gdy nadszedł czas wydania, zostanie utworzona gałąź wydania na podstawie
developelementu . To izoluje prace nad przygotowaniem wydania, dzięki czemu programowanie może być kontynuowane nieprzerwanie. - Poprawki błędów można dodać do gałęzi wydania, ale główne funkcje powinny czekać na przyszłe wydanie.
- Gdy wszystko będzie gotowe, gałąź wydania zostanie scalona i
masteroznaczona numerem wersji. Usługa GitHub może używać tych tagów, aby ułatwić generowanie informacji o wersji. - Ta sama gałąź wydania powinna zostać scalona z powrotem,
developaby zachować synchronizację. - Jeśli wystąpi krytyczna usterka produkcyjna, zostanie utworzona gałąź poprawek na podstawie
masterelementu . Po naprawieniu jest on scalony z parametrami imasterdevelop.
Kiedy używać przepływu git
- Najlepsze rozwiązanie dla projektów z zaplanowanymi lub wersjami
- Przydatne w przypadku obsługi wielu wersji produkcyjnych (np. gałęzi wsparcia długoterminowego)
- Idealne rozwiązanie w przypadku wolniejszych, bardziej ustrukturyzowanych cykli programowania (np. środowisk korporacyjnych lub regulowanych)
- Rozważenie większej "wagi ciężkiej" niż usługa GitHub Flow ze względu na dodatkowe zarządzanie gałęziami
Uwaga
Przepływ usługi Git zakłada zatwierdzenia scalania dla integrowania gałęzi. Użycie scalania rebase lub squasha może zakłócać jego strukturę gałęzi i śledzenie historii.
W przypadku wielu zespołów korzystających z usługi GitHub usługa GitHub Flow jest prostsza i szybsza. Jeśli jednak twój zespół ceni przewidywalność i wymaga większej liczby planów wydania, przepływ usługi Git może być lepszy.
Gratulacje! Udało Ci się zapoznać z pełną usługą GitHub Flow i dowiedzieć się, jak przepływ Git oferuje ustrukturyzowaną alternatywę dla projektów opartych na wydaniach.
Przejdźmy do następnej sekcji, w której omówimy różnice między problemami i dyskusjami.