Co to są żądania ściągnięcia?

Ukończone

Zaczynamy od:

  • Przeglądanie gałęzi i ich znaczenie dla żądań ściągnięcia.
  • Definiowanie żądania ściągnięcia.
  • Dowiedz się, jak utworzyć żądanie ściągnięcia, przejrzeć stany żądań ściągnięcia i scalić żądanie ściągnięcia.

Odgałęzienia

Najpierw zdefiniujmy, jakie gałęzie są, dlaczego są ważne dla deweloperów i jak są one powiązane z żądaniami ściągnięcia.

Gałęzie to odizolowane obszary robocze, w których można opracowywać swoją pracę bez wpływu na inne elementy w repozytorium. Umożliwiają one opracowywanie funkcji, naprawianie usterek i bezpieczne eksperymentowanie z nowymi pomysłami w zawartym obszarze repozytorium.

Deweloperzy pracujący nad niezależnymi gałęziami to wspólna koncepcja nowoczesnego tworzenia oprogramowania. Mając własną gałąź, deweloper może wprowadzać wszelkie zmiany, nazywane zatwierdzeniami, bez martwienia się o to, jak ich zatwierdzenia wpływają na innych deweloperów pracujących nad własnymi gałęziami.

Scalanie gałęzi

Mimo że każda praca deweloperów w oddzielnej gałęzi jest świetna dla indywidualnej produktywności, otwiera nowe wyzwanie. W pewnym momencie gałąź każdego dewelopera musi zostać scalona z wspólną gałęzią, na przykład main. W miarę skalowania projektów może istnieć wiele scaleń, które muszą się zdarzyć i staje się coraz ważniejsze, aby śledzić i przeglądać poszczególne scalania. Śledzenie wielu zmian w projekcie polega na tym, że żądania ściągnięcia przychodzą.

Co to jest żądanie ściągnięcia?

Żądanie ściągnięcia to sposób dokumentowania zmian gałęzi i informowania o tym, że zmiany z gałęzi dewelopera są gotowe do scalenia z gałęzią podstawową (główną). Żądania ściągnięcia umożliwiają uczestnikom projektu przejrzenie i omówienia proponowanych zmian w celu zapewnienia, że jakość kodu w gałęzi podstawowej jest tak wysoka, jak to możliwe.

Pull request porównuje zmiany między dwoma gałęziami:

  • Gałąź porównawcza jest własną gałęzią dewelopera, która zawiera określone wprowadzone zmiany.
  • Gałąź bazowa , nazywana również gałęzią główną , jest gałęzią, z którą należy scalić zmiany.

Podczas rozpoczęcia pull request, GitHub automatycznie wyświetla widok porównania gałęzi.

Tworzenie żądania ściągnięcia

Teraz zobaczmy, jak utworzyć żądanie ściągnięcia!

  1. Na GitHub.comstronie przejdź do strony głównej repozytorium.

  2. W menu Gałąź wybierz gałąź zawierającą zatwierdzenia.

    Zrzut ekranu przedstawiający tworzenie nowej gałęzi i nazywanie jej.

  3. Nad listą plików na żółtym banerze wybierz przycisk Porównaj i żądanie ściągnięcia, aby utworzyć żądanie ściągnięcia dla skojarzonej gałęzi.

    Zrzut ekranu przedstawiający żółte pole tekstowe z wyróżnionym zielonym przyciskiem porównania i żądania ściągnięcia.

  4. W menu rozwijanym gałąź podstawowa wybierz gałąź, do której chcesz scalić zmiany. Następnie wybierz menu rozwijane porównaj gałąź , aby wybrać gałąź, w której wprowadzono zmiany.

  5. Wprowadź tytuł i opis żądania ściągnięcia.

  6. Aby utworzyć żądanie ściągnięcia gotowe do przeglądu, wybierz przycisk Utwórz żądanie ściągnięcia. Aby utworzyć robocze żądanie ściągnięcia, wybierz listę rozwijaną i wybierz pozycję Utwórz żądanie ściągnięcia w wersji roboczej, a następnie wybierz pozycję Robocze żądanie ściągnięcia.

Stany żądań ściągnięcia

Teraz przejrzyjmy różne stany żądania ściągnięcia.

  • Żądanie ściągnięcia w wersji roboczej — podczas tworzenia żądania ściągnięcia można utworzyć żądanie ściągnięcia gotowe do przeglądu lub wersję roboczą żądania ściągnięcia. Nie można scalić żądania ściągnięcia ze stanem wersji roboczej, a właściciele kodu nie są automatycznie proszeni o przejrzenie wersji roboczej żądań ściągnięcia.

  • Otwarte żądanie ściągnięcia — stan otwarcia oznacza, że żądanie ściągnięcia jest aktywne i nie zostało jeszcze scalone z gałęzią podstawową. Nadal możesz dokonać zatwierdzeń i omówić i przejrzeć potencjalne zmiany ze współpracownikami.

  • Zamknięte żądanie ściągnięcia — możesz zamknąć żądanie ściągnięcia bez scalania go z gałęzią podstawową/główną. Ta opcja jest przydatna, jeśli zmiany proponowane w gałęzi nie są już potrzebne lub jeśli w innej gałęzi zaproponowano inne rozwiązanie.

  • Scalone żądanie ściągnięcia — stan scalonego żądania ściągnięcia oznacza, że aktualizacje i zatwierdzenia z gałęzi porównania zostały połączone z gałęzią podstawową. Każdy, kto ma dostęp wypychany do repozytorium, może ukończyć scalanie.

Scalanie żądania ściągnięcia

  1. W obszarze nazwy repozytorium wybierz pozycję Żądania ściągnięcia.

    Zrzut ekranu przedstawiający górny pasek nawigacyjny repozytorium z wyróżnioną kartą Żądanie ściągnięcia.

  2. Na liście Żądania ściągnięcia wybierz żądanie ściągnięcia, które chcesz scalić.

  3. Przewiń w dół do dołu żądania ściągnięcia. W zależności od opcji scalania włączonych dla repozytorium można wykonywać następujące czynności:

    • Scal wszystkie zatwierdzenia z gałęzią podstawową, wybierając przycisk Scal żądanie ściągnięcia. Jeśli opcja Scal żądanie ściągnięcia nie jest wyświetlana, wybierz menu rozwijane scalania, wybierz opcję Utwórz zatwierdzenie scalania, a następnie wybierz przycisk Utwórz zatwierdzenie scalania.

      Zrzut ekranu przedstawiający menu rozwijane zielonego przycisku żądania ściągnięcia scalania z wybraną pozycją Utwórz zatwierdzenie scalania.

    • Squash i scalanie umożliwia podjęcie wszystkich zatwierdzeń i połączenie ich w jeden. Ta opcja pomaga zachować czytelność i organizowanie historii repozytorium. Wybierz opcję Squash i merge, a następnie wybierz przycisk Squash i scal.

    • Opcja Rebase i merge umożliwia wykonywanie zatwierdzeń bez zatwierdzenia scalania. Utrzymuje to liniową historię projektu. Wybierz menu rozwijane scalania, a następnie wybierz opcję Zmień bazę danych i scalanie , a następnie wybierz przycisk Zmień bazę danych i scalanie .

  4. Jeśli zostanie wyświetlony monit, wprowadź komunikat zatwierdzenia lub zaakceptuj komunikat domyślny.

  5. Jeśli masz więcej niż jeden adres e-mail skojarzony z kontem w GitHub.comwitrynie , wybierz menu rozwijane adres e-mail i wybierz adres e-mail, który ma być używany jako adres e-mail autora usługi Git. W tym menu rozwijanym są wyświetlane tylko zweryfikowane adresy e-mail. Jeśli włączono prywatność adresu e-mail, jako domyślny adres e-mail autora zatwierdzenia zostanie użyty adres e-mail bez odpowiedzi w usłudze GitHub.

    Zrzut ekranu przedstawiający zmianę zatwierdzenia z polem opisu i menu rozwijanym wiadomości e-mail do wybrania jako autor zatwierdzenia.

  6. Wybierz pozycję Potwierdź scalanie, Potwierdź squash i scal lub Potwierdź ponowną bazę i scalanie.

  7. Opcjonalnie możesz usunąć gałąź compare, aby zachować listę gałęzi w repozytorium.

Zaawansowane opcje żądania ściągnięcia

Oprócz tworzenia i scalania żądań pobrania istnieje kilka zaawansowanych opcji, które ułatwiają zespołom utrzymanie wysokiej jakości kodu.

Prośba o recenzentów

Możesz poprosić określonych współpracowników o przejrzenie pull requesta. Tylko współpracownicy z uprawnieniami do zapisu do repozytorium mogą być wybrani jako recenzenci. Pomaga to upewnić się, że zmiany są przeglądane przez odpowiednie osoby przed scaleniem.

  1. Podczas tworzenia lub wyświetlania wniosku o wyciągnięcie kodu znajdź sekcję Recenzenci na pasku bocznym po prawej stronie.
  2. Wyszukaj i wybierz nazwy użytkowników GitHuba współpracowników, którzy mają uprawnienia do zapisu w repozytorium.
  3. Wybrani recenzenci otrzymają powiadomienie o zrecenzowanie twojego pull request.

Wymagane przeglądy i reguły ochrony gałęzi

Niektóre repozytoria używają reguł ochrony gałęzi, które wymagają, aby pull requesty spełniały określone warunki przed ich połączeniem. Typowe wymagania obejmują:

  • Co najmniej jeden zatwierdzający przegląd od innego współpracownika.
  • Przejście wszystkich wymaganych kontroli stanu, takich jak przepływy pracy integracji ciągłej.

Jeśli pull request nie spełnia tych wymagań, przycisk scalania zostanie wyłączony, aż wszystkie warunki zostaną spełnione.

W dolnej części strony pull request można zobaczyć wymagane reguły dla repozytorium w sekcji Scalania.

Te reguły są zwykle konfigurowane przez administratorów repozytorium w ustawieniach ochrony gałęzi.

Kontrole stanu i ciągła integracja

Jeśli repozytorium używa funkcji GitHub Actions lub innego systemu ciągłej integracji, pull requesty mogą automatycznie uruchamiać kontrole statusu po wprowadzeniu zmian. Oto kilka przykładów:

  • Uruchamianie testów jednostkowych
  • Sprawdzanie formatowania kodu
  • Weryfikowanie skanowania zabezpieczeń

Żądania ściągnięcia zwykle muszą przejść wszystkie wymagane kontrole stanu, aby można je było scalić z gałęzią podstawową. Nieudane kontrole są wyświetlane bezpośrednio na stronie pull request.

Zapisywanie repozytoriów za pomocą gwiazdek

Jeśli znajdziesz repozytorium, które chcesz łatwo znaleźć później, możesz oznaczyć gwiazdką w usłudze GitHub. Dodanie repozytorium do ulubionych zapisuje je na liście ulubionych i pokazuje twoje uznanie dla osób utrzymujących repozytorium.

Aby oznaczyć repozytorium gwiazdką:

  1. Przejdź do strony repozytorium w witrynie GitHub.com.
  2. W prawym górnym rogu wybierz przycisk Gwiazdka ⭐.

Możesz wyświetlić wszystkie repozytoria, które oznaczyłeś gwiazdką, wybierając zdjęcie profilowe, a następnie Twoje gwiazdki.

Skróty klawiaturowe

Usługa GitHub oferuje wiele skrótów klawiaturowych, które ułatwiają szybsze przechodzenie przez pracę.

Aby wyświetlić wszystkie dostępne skróty:

  • Naciśnij ? w dowolnym miejscu na GitHub.com.

Zostanie wyświetlona lista skrótów do nawigowania po problemach, żądaniach ściągnięcia, repozytoriach i nie tylko.

Korzystanie z palety poleceń

Paleta poleceń w usłudze GitHub ułatwia szybkie przechodzenie do stron, uruchamianie typowych akcji lub repozytoriów wyszukiwania bez wyłączania klawiatury.

Aby otworzyć paletę poleceń:

  • Naciśnij Ctrl+K (Windows/Linux) lub ⌘+K (Mac).

Możesz zacząć wpisywać polecenia, takie jak "utworzyć pull request", "wyświetlić zgłoszenia" lub "przełączanie gałęzi", aby natychmiast przejść tam, gdzie potrzebujesz.

Zastosuj zdobytą wiedzę

Następnie wykonasz ćwiczenie, które pobiera przejrzene elementy i stosuje je do rzeczywistego przykładu.