Nie zawsze możesz utworzyć gałąź lub wyciągnąć istniejącą gałąź i odepchnąć do niej, ponieważ nie jesteś zarejestrowany jako współpracownik dla tego konkretnego projektu.
Forking to tylko klon po stronie serwera GitHub :
- bez możliwości bezpośredniego odepchnięcia
- z dodaną funkcją kolejki rozwidlenia do zarządzania żądaniem scalenia
Widelec jest zsynchronizowany z oryginalnym projektem poprzez:
- dodanie oryginalnego projektu jako pilota
- pobieranie regularnie z tego oryginalnego projektu
- oprzyj swój obecny rozwój na gałęzi zainteresowań, którą zaktualizowałeś z tego pobrania.
Rebase pozwala upewnić się, że zmiany są proste (bez konfliktu scalania do obsługi), dzięki czemu prośba o wyciągnięcie jest łatwiejsza, gdy chcesz, aby opiekun oryginalnego projektu uwzględnił Twoje łaty w swoim projekcie.
Celem jest naprawdę umożliwienie współpracy, nawet jeśli bezpośredni udział nie zawsze jest możliwy.
Fakt, że klonujesz po stronie GitHub oznacza, że masz teraz dwa „centralne” repozytorium („centralne” jako „widoczne dla kilku współpracowników).
Jeśli możesz dodać je bezpośrednio jako współpracownika dla jednego projektu, nie musisz zarządzać innym jeden z widelcem.
Proces scalania byłby mniej więcej taki sam, ale z dodatkowym poziomem pośrednictwa (naciśnij najpierw na widelec, a następnie poproś o pociągnięcie, z ryzykiem ewolucji oryginalnego repozytorium, co spowoduje, że twoje połączenia do przodu nie będą już przewijać do przodu) .
Oznacza to, że prawidłowym obiegiem pracy jest git pull --rebase upstream
(bazowanie na pracy nad nowymi zatwierdzeniami od początku), a następnie git push --force origin
, w celu przepisania historii w taki sposób, że własne zatwierdzenia są zawsze na początku zatwierdzeń z oryginalnego (wcześniejszego) repozytorium .
Zobacz też: