Wdrożenie przepływu pracy typu fork
Rozwidlenie to kopia repozytorium. Rozwidlenie repozytorium umożliwia swobodne eksperymentowanie ze zmianami bez wpływu na oryginalny projekt.
Najczęściej forki są używane do zaproponowania zmian w projekcie innej osoby. Możesz też użyć projektu innego użytkownika jako punktu wyjścia dla twojego pomysłu.
Rozgałęzienie to kompletna kopia repozytorium, w tym wszystkie pliki, zatwierdzenia i (opcjonalnie) gałęzie.
Forki to doskonały sposób wspierania workflowu Inner Source: możesz utworzyć forka, aby sugerować zmiany, gdy nie masz uprawnień do bezpośredniego zapisu w oryginalnym projekcie.
Gdy będziesz gotowy do udostępnienia tych zmian, możesz łatwo wnosić wkład, używając próśb o zatwierdzenie zmian.
Co kryje się w widelcu?
Rozwidlenie rozpoczyna się od całej zawartości repozytorium nadrzędnego (oryginalnego).
Możesz uwzględnić wszystkie gałęzie lub ograniczyć je tylko do gałęzi domyślnej podczas tworzenia rozwidlenia.
Żadne uprawnienia, zasady ani potoki kompilacji nie są stosowane.
Nowe rozwidlenie działa tak, jakby ktoś sklonował oryginalne repozytorium, a następnie przesłał je do nowego, pustego repozytorium.
Po utworzeniu rozwidlenia nowe pliki, foldery i gałęzie nie są współużytkowane między repozytoriami, chyba że Pull Request (PR) je uwzględnia.
Udostępnianie kodu między forkami
Można utworzyć prośby o zmianę w obu kierunkach: z rozwidlenia do nadrzędnego repozytorium lub z nadrzędnego repozytorium do rozwidlenia.
Najczęstszym podejściem będzie przekazywanie zmian z forka do projektu nadrzędnego.
Uprawnienia, zasady, kompilacje i elementy robocze repozytorium docelowego będą miały zastosowanie do prośby o połączenie.
Wybieranie między gałęziami i forkami
W przypadku małego zespołu (2–5 deweloperów) zalecamy pracę w jednym repozytorium.
Każdy powinien pracować w gałęzi tematycznej, a gałąź główna powinna być chroniona przy użyciu zasad dla gałęzi.
W miarę jak twój zespół się powiększa, możesz uznać, że wyrastasz z tego układu i wolisz przejść na model pracy z rozwidleniami.
Zalecamy tworzenie rozwidlenia przepływu pracy, jeśli repozytorium ma wiele zwykłych lub rzadkich komitetów (takich jak projekt open source).
Zazwyczaj tylko kluczowi współtwórcy projektu mają prawo do bezpośredniego zatwierdzania w repozytorium.
Byłoby pomocne, gdybyś poprosił współpracowników spoza tego podstawowego zespołu, aby pracowali z forka repozytorium.
Ponadto, będzie odizolowywało ich zmiany od Twoich, dopóki nie będziesz miał szansy na sprawdzenie pracy.
Przepływ pracy rozwidlania
- Utwórz forka.
- Sklonuj go lokalnie.
- Wprowadź zmiany lokalnie i wypchnij je do gałęzi.
- Utwórz i ukończ żądanie ściągnięcia w górę.
- Zsynchronizuj swoje rozgałęzienie z najnowszymi zmianami z nadrzędnego repozytorium.
Utwórz rozwidlenie
- Przejdź do repozytorium, aby je sforkować, i wybierz opcję „fork”.
- Określ nazwę i wybierz projekt, w którym ma zostać utworzony fork. Jeśli repozytorium zawiera wiele gałęzi tematów, zalecamy rozwidlenie tylko gałęzi domyślnej.
- Wybierz wielokropek, a następnie rozwidlenie, aby utworzyć rozwidlenie.
Uwaga
Aby utworzyć fork, musisz mieć uprawnienie Tworzenie repozytorium w wybranym projekcie. Zalecamy utworzenie dedykowanego projektu dla rozwidleń (forks), w którym wszyscy współpracownicy mają uprawnienie do tworzenia repozytoriów. Aby zapoznać się z przykładem udzielenia tego uprawnienia, zobacz Ustawianie uprawnień repozytorium Git.
Sklonuj swój fork lokalnie
Gdy rozwidlenie będzie gotowe, sklonuj go przy użyciu wiersza polecenia lub środowiska IDE, takiego jak Visual Studio. Fork będzie twoim źródłem zdalnym.
Dla wygody, po sklonowaniu, należy dodać jako zdalne repozytorium upstream (z którego zrobiono fork).
git remote add upstream {upstream_url}
Dokonaj i prześlij zmiany
Można pracować bezpośrednio w gałęzi głównej — w końcu ten fork jest twoją kopią repozytorium.
Zalecamy jednak, abyś nadal pracował w gałęzi tematycznej.
Umożliwia jednoczesne utrzymywanie wielu niezależnych strumieni roboczych.
Ponadto zmniejsza zamieszanie później, gdy chcesz zsynchronizować zmiany w swoim odgałęzieniu.
Wprowadź i zatwierdź zmiany w zwykły sposób. Po zakończeniu wprowadzania zmian, wprowadź je do origin (twoje rozwidlenie).
Tworzenie i uzupełnianie żądania ściągnięcia
Otwórz żądanie ściągnięcia z rozwidlenia do nadrzędnego strumienia. Wszystkie zasady wymagane przez recenzentów i kompilacje zostaną zastosowane w repozytorium nadrzędnym. Gdy wszystkie zasady zostaną spełnione, PR może zostać ukończony, a zmiany staną się stałą częścią nadrzędnego repozytorium.
Ważny
Każda osoba z uprawnieniem Odczyt może otworzyć żądanie ściągnięcia do upstream. Jeśli skonfigurowano potok kompilacji dla żądania zmiany, kompilacja zostanie uruchomiona względem kodu wprowadzonego w forku.
Synchronizowanie rozwidlenia z najnowszą wersją
Po zaakceptowaniu twojego pull requesta (PR) do głównego repozytorium, należy upewnić się, że twój fork odzwierciedla najnowszy stan repozytorium.
Zalecamy zrebase'owanie na gałąź główną nadrzędną (zakładając, że główną gałęzią programistyczną jest main).
git fetch upstream main
git rebase upstream/main
git push origin
Przepływ pracy rozwidlenia umożliwia izolowanie zmian z repozytorium głównego, aż będziesz gotów do ich zintegrowania. Kiedy będziesz gotowy, integracja kodu jest tak prosta, jak ukończenie pull request.