Udostępnij za pośrednictwem


Rozwidlenia

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Rozwidlenia repozytorium Git są przydatne, gdy ludzie chcą wprowadzać eksperymentalne, ryzykowne lub ukryte zmiany w bazie kodu, ale te zmiany muszą być odizolowane od bazy kodu w oryginalnym repozytorium. Nowy rozwidlenie jest w zasadzie nowym repozytorium zdalnym, które udostępnia kod źródłowy oryginalnego repozytorium.

Jako niezależna wersja zmiany wprowadzone w rozwidleniu, takie jak dodawanie zatwierdzeń lub gałęzi, są ukryte przed oryginalnym repozytorium. Jeśli chcesz scalić zmiany bazy kodu w oryginalnym repozytorium, musisz utworzyć żądanie ściągnięcia, aby zażądać przeglądu i zatwierdzenia tych zmian.

Proces rozwidlenia nie przenosi żadnych uprawnień, zasad ani potoków kompilacji z oryginalnego repozytorium do rozwidlenia.

Ten artykuł dotyczy pracy z rozwidleniami w repozytoriach Git usługi Azure Repos i zawiera linki do zawartości usługi GitHub, która omawia sposób zarządzania rozwidleniami w repozytoriach GitHub.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Udostępnianie kodu między rozwidlami
  • Wybieranie między gałęziami i rozwidleniami
  • Włączanie rozwidlenia repozytorium
  • Tworzenie rozwidlenia
  • Klonowanie rozwidlenia lokalnie
  • Wypychanie zmian lokalnych do rozwidlenia
  • Tworzenie i uzupełnianie żądania ściągnięcia
  • Synchronizowanie rozwidlenia

Wymagania wstępne dotyczące dostępu do usługi Azure Repos

  • Repozytoria muszą być włączone w ustawieniach projektu usługi Azure DevOps. Jeśli centrum repozytoriów i skojarzone strony nie są wyświetlane, zobacz Włączanie lub wyłączanie usługi Azure DevOps w celu ponownego włączenia repozytoriów.

  • Aby wyświetlić kod w projektach prywatnych, musisz być członkiem projektu usługi Azure DevOps z poziomem dostępu podstawowego lub wyższym. W przypadku projektów publicznych każdy może wyświetlić kod.

  • Aby sklonować lub współtworzyć kod dla projektu prywatnego, musisz być członkiem grupy zabezpieczeń Współautorzy lub mieć odpowiedni zestaw uprawnień. W przypadku projektów publicznych każdy może klonować i współtworzyć kod. Aby uzyskać więcej informacji, zobacz Co to jest projekt publiczny?

    Uwaga

    W przypadku projektów publicznych użytkownicy, którym udzielono dostępu uczestnikom projektu , mają pełny dostęp do usługi Azure Repos.

  • Repozytoria muszą być włączone w ustawieniach projektu usługi Azure DevOps. Jeśli centrum repozytoriów i skojarzone strony nie są wyświetlane, zobacz Włączanie lub wyłączanie usługi Azure DevOps w celu ponownego włączenia repozytoriów.

  • Aby wyświetlić kod, musisz być członkiem projektu usługi Azure DevOps z dostępem podstawowym lub wyższym. Jeśli nie jesteś członkiem projektu, dodaj go.

  • Aby sklonować lub współtworzyć kod, musisz być członkiem grupy zabezpieczeń Współautorzy lub mieć odpowiednie uprawnienia w projekcie, który chcesz zmienić.

Udostępnianie kodu między rozwidlami

Oryginalne repozytorium jest często określane jako nadrzędne repozytorium. Żądania ściągnięcia można utworzyć, aby scalić zmiany w obu kierunkach: od rozwidlenia do nadrzędnego lub nadrzędnego do rozwidlenia. Najczęstszym kierunkiem jest od rozwidlenia do góry. Uprawnienia, zasady, kompilacje i elementy robocze repozytorium docelowego będą stosowane do żądania ściągnięcia.

Wybieranie między gałęziami i rozwidleniami

W przypadku małego zespołu 2–5 deweloperów może nie być konieczne tworzenie rozwidła przepływu pracy, ponieważ każdy może pracować w gałęziach funkcji i zasadach gałęzi może chronić gałąź domyślną. Jeśli jednak twój zespół rozszerza i zwiększa ten układ, może przełączyć się do przepływu pracy rozwidłego.

Jeśli repozytorium ma dużą liczbę przypadkowych lub rzadkich osób zatwierdzających, takich jak projekt open source, zalecamy utworzenie rozwidlenia przepływu pracy. Zazwyczaj tylko współautorzy podstawowi projektu powinni mieć bezpośrednie uprawnienia zatwierdzania do oryginalnego repozytorium. Inni współpracownicy powinni używać przepływu pracy rozwidłania w celu odizolowania proponowanych zmian do momentu, gdy kluczowi współautorzy będą mogli przejrzeć swoją pracę.

Włączanie rozwidlenia repozytorium

Aby włączyć rozwidlenia repozytorium Git usługi Azure Repos, zobacz włączanie rozwidlenia.

Aby włączyć rozwidlenia dla repozytorium GitHub, zobacz Zarządzanie zasadami rozwidlenia dla organizacji.

Przepływ pracy rozwidlania

Przepływ pracy rozwidlania składa się z pięciu kroków opisanych w poniższych sekcjach.

  1. Tworzenie rozwidlenia
  2. Klonowanie rozwidlenia lokalnie
  3. Wypychanie zmian lokalnych do rozwidlenia
  4. Tworzenie i uzupełnianie żądania ściągnięcia
  5. Synchronizowanie rozwidlenia

Tworzenie rozwidlenia

W poniższych krokach opisano sposób rozwidlenia repozytorium Git usługi Azure Repos.

Uwaga

Aby utworzyć rozwidlenie repozytorium w projekcie usługi Azure DevOps, musisz mieć uprawnienie Tworzenie repozytorium dla tego projektu. Właściciele repozytoriów powinni rozważyć utworzenie dedykowanego projektu rozwidlenia i przypisanie uprawnienia Tworzenie repozytorium do wszystkich współautorów. Aby uzyskać więcej informacji na temat ustawiania uprawnień, zobacz Ustawianie uprawnień repozytorium Git.

  1. W przeglądarce internetowej przejdź do repozytorium Git usługi Azure Repos, które chcesz rozwidlić. Wybierz pozycję Pliki repozytorium>, a następnie z menu wielokropka wybierz pozycję Rozwidlenie, aby otworzyć okno dialogowe Rozwidlenia.

    Zrzut ekranu przedstawiający element menu Rozwidlenie w menu Więcej akcji na stronie Pliki repozytorium w usłudze Azure Repos.

  2. W oknie dialogowym Rozwidlenie nadaj rozwidleniu nazwę repozytorium, wybierz projekt, w którym ma zostać utworzony rozwidlenie, wybierz gałęzie do uwzględnienia w rozwidleniu, a następnie wybierz pozycję Rozwidlenie. Można określić, czy rozwidlenie będzie zawierać wszystkie gałęzie, czy tylko gałąź domyślną. Jeśli repozytorium zawiera kilka gałęzi tematu, rozważ uwzględnienie tylko gałęzi domyślnej w rozwidleniu.

    Zrzut ekranu przedstawiający okno dialogowe Rozwidlenia na stronie Pliki repozytorium w usłudze Azure Repos.

Aby uzyskać informacje na temat tworzenia rozwidlenia repozytorium GitHub, zobacz Rozwidlenie repozytorium.

Klonowanie rozwidlenia lokalnie

Po utworzeniu rozwidlenia repozytorium sklonuj rozwidlenie, aby utworzyć kopię lokalną w folderze na komputerze. Możesz sklonować z wiersza polecenia lub przy użyciu środowiska IDE, takiego jak Visual Studio. Aby uzyskać więcej informacji na temat klonowania repozytorium, zobacz Klonowanie istniejącego repozytorium Git.

Podczas klonowania repozytorium zdalnego usługa Git przypisuje alias origin jako skrót adresu URL sklonowanego repozytorium zdalnego. Dla wygody dodaj kolejny alias o nazwie upstream dla rozwidlenia rozwidlenia, który jest określany jako nadrzędne repozytorium. W poniższych krokach opisano sposób dodawania aliasu upstream .

Napiwek

Dla wygody możesz użyć origin aliasów i upstream zamiast odpowiednich adresów URL w poleceniach usługi Git.

Aby dodać upstream alias w programie Visual Studio, wykonaj następujące kroki:

  1. Wybierz pozycję Opcje narzędzi > na pasku menu, aby otworzyć okno Opcje. Wybierz pozycję Kontrola źródła > Ustawienia repozytorium Git Ustawienia > zdalne, a następnie wybierz pozycję Dodaj, aby otworzyć okno dialogowe Dodawanie zdalnego.

    Zrzut ekranu przedstawiający przycisk Dodaj w okienku Zdalne podmenu Ustawienia repozytorium Git w menu Kontrola źródła w programie Visual Studio 2019.

  2. W oknie dialogowym Dodawanie zdalnego dodaj nową zdalną nazwę i upstream wprowadź adres URL klonowania Git rozwidlenia repozytorium. Następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający okno dialogowe Dodawanie zdalnego w programie Visual Studio 2019.

Wypychanie zmian lokalnych do rozwidlenia

Podczas rozwidlenia tworzysz osobistą wersję oryginalnego repozytorium (oryginalne repozytorium jest nazywane "nadrzędnym"). Rozwidlenie jest niezależne od nadrzędnego strumienia, ale rozwidlenie udostępnia kod i zachowuje link do nadrzędnego strumienia, co pozwala na przyszłą synchronizację. Nie ma więc nic, aby uniemożliwić pracę bezpośrednio w main gałęzi klonu lokalnego, a następnie wypchnięcie tej pracy do main gałęzi rozwidlenia. Jednak ogólnie lepiej używać gałęzi funkcji do pracy. Za pomocą gałęzi funkcji:

  • Jednocześnie można obsługiwać wiele niezależnych strumieni roboczych.

  • Ułatwiasz innym osobom zrozumienie udostępnionej pracy, ponieważ ta praca jest zorganizowana w odrębne strumienie robocze według gałęzi.

Typowy przepływ pracy usługi Git obejmuje następujące kroki:

  1. Utwórz lokalną funkcję lub gałąź naprawy błędów.

  2. Wprowadź zmiany w nowej gałęzi i zatwierdź swoją pracę. Zazwyczaj podczas pracy nad funkcją lub poprawką usterek ludzie tworzą wiele zatwierdzeń.

  3. Wypchnij gałąź funkcji lub poprawki błędów do rozwidlenia. Twój rozwidlenie ma alias origin.

Aby uzyskać informacje na temat wypychania zmian, zobacz Udostępnianie kodu za pomocą wypychania.

Tworzenie i uzupełnianie żądania ściągnięcia

W usłudze Azure Repos, aby scalić z oryginalnym repozytorium zmiany wypchnięte do rozwidlenia, możesz wykonać następujące czynności:

  1. Utwórz żądanie ściągnięcia, aby zażądać przeglądu i zatwierdzenia zmian. Po otwarciu żądania ściągnięcia ustaw gałąź źródłową żądania ściągnięcia na gałąź funkcji lub poprawki usterek w rozwidleniu. Gałąź docelowa żądania ściągnięcia jest zazwyczaj gałęzią main rozwidlenia rozwidlenia. To repozytorium jest określane jako nadrzędne repozytorium i ma alias upstream.

    Poniższy zrzut ekranu przedstawia repozytorium źródłowe i gałąź oraz repozytorium docelowe i gałąź żądania ściągnięcia utworzonego w usłudze Azure Repos.

    Zrzut ekranu przedstawiający opcje źródła i gałęzi docelowej żądania ściągnięcia w usłudze Azure Repos.

    Aby uzyskać więcej informacji na temat tworzenia żądania ściągnięcia przy użyciu przeglądarki, programu Visual Studio lub interfejsu wiersza polecenia usługi Azure DevOps, zobacz Tworzenie żądania ściągnięcia.

    Ważne

    Każda osoba z uprawnieniem Odczyt w repozytorium nadrzędnym może otworzyć żądanie ściągnięcia. Jeśli repozytorium nadrzędne ma potok kompilacji żądania ściągnięcia skonfigurowany do uruchamiania podczas tworzenia żądania ściągnięcia, kompilacja zostanie uruchomiona na zmianach wprowadzonych przez żądanie ściągnięcia.

  2. Aby żądanie ściągnięcia zostało ukończone, wszyscy wymagani recenzenci muszą zatwierdzić zmiany żądania ściągnięcia, a wszystkie zasady gałęzi docelowej muszą zostać spełnione. Po zatwierdzeniu i zakończeniu żądania ściągnięcia zmiany w gałęzi źródłowej żądania ściągnięcia zostaną scalone z gałęzią docelową żądania ściągnięcia.

Aby uzyskać informacje na temat tworzenia i uzupełniania żądania ściągnięcia w usłudze GitHub, zobacz Tworzenie żądania ściągnięcia i Scalanie żądania ściągnięcia.

Synchronizowanie rozwidlenia

Po scaleniu zmian z rozwidlenia żądania ściągnięcia z gałęzi docelowej repozytorium nadrzędnego można ściągnąć z gałęzi docelowej repozytorium nadrzędnego, aby zaktualizować odpowiednią gałąź lokalną zarówno ze zmianami, jak i zmianami wprowadzonych przez innych współautorów. Następnie możesz:

  • Utwórz nową gałąź funkcji lub poprawki błędów z zaktualizowanej gałęzi lokalnej.

  • Zaktualizuj rozwidlenie, wypychając zaktualizowaną gałąź lokalną do origin.

Zazwyczaj gałąź docelowa repozytorium nadrzędnego to main. Jeśli nie edytujesz bezpośrednio gałęzi lokalnej main (pracujesz w gałęziach funkcji), ściąganie z gałęzi nadrzędnej spowoduje zaktualizowanie main lokalnej gałęzi upstream/main bez konfliktów scalania.

Następne kroki