Składniki przepływu usługi GitHub

Ukończone

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"

Zrzut ekranu przedstawiający listę zatwierdzeń usługi GitHub w gałęzi głównej.

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ą.

Zrzut ekranu przedstawiający żądanie ściągnięcia i komentarz w żądaniu ściągnięcia.

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

Zrzut ekranu przedstawiający wizualną reprezentację przepływu usługi GitHub w formacie liniowym zawierającym nową gałąź, zatwierdzenia, żądanie ściągnięcia i scalanie zmian z powrotem do głównej w tej kolejności.

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.

  1. Zacznij od utworzenia gałęzi, aby zmiany, funkcje lub poprawki nie wpływały na gałąź główną.
  2. 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.
  3. Teraz otwórz żądanie ściągnięcia, aby zaprosić opinię i rozpocząć przegląd.
  4. Następnie przejrzyj komentarze i wprowadź wszelkie niezbędne aktualizacje na podstawie opinii twojego zespołu.
  5. Na koniec, gdy masz pewność co do zmian, uzyskaj zatwierdzenie i scal żądanie ściągnięcia z gałęzią główną.
  6. Następnie usuń gałąź, aby zachować czyste repozytorium i uniknąć używania nieaktualnych gałęzi.

Przepływ usługi Git

Diagram przedstawiający przepływ pracy przepływu usługi Git z równoległymi pasami ruchu dla gałęzi funkcji, opracowywania, wydawania gałęzi, poprawek i wzorca. Pokazuje on, jak funkcje są scalane z programowaniem, gałęzie wydania są tworzone na podstawie programowania, poprawki są rozgałęziane z wzorca, a wszystkie zmiany są ostatecznie scalane z powrotem do wzorca i opracowywane z oznakowanymi wersjami.

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 develop i 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

  1. Deweloperzy tworzą gałęzie funkcji od develop , aby tworzyć nowe funkcje.
  2. 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.
  3. Poprawki błędów można dodać do gałęzi wydania, ale główne funkcje powinny czekać na przyszłe wydanie.
  4. Gdy wszystko będzie gotowe, gałąź wydania zostanie scalona i master oznaczona numerem wersji. Usługa GitHub może używać tych tagów, aby ułatwić generowanie informacji o wersji.
  5. Ta sama gałąź wydania powinna zostać scalona z powrotem, develop aby zachować synchronizację.
  6. Jeśli wystąpi krytyczna usterka produkcyjna, zostanie utworzona gałąź poprawek na podstawie masterelementu . Po naprawieniu jest on scalony z parametrami i masterdevelop.

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.