Załóżmy, że someone/foobar
na GitHub istnieje repozytorium , do którego rozwidliłem się me/foobar
.
Jak pobrać nowe zatwierdzenia z repozytorium nadrzędnego bezpośrednio do mojego rozwidlenia , bez konieczności dodawania osobnego pilota i pamiętając, aby regularnie pobierać z tego miejsca ?
Celem jest:
git pull
aby pobrać z repozytorium nadrzędnegogit push
wysłać wszystko do mojego widelca
Odpowiedzi:
Otwórz rozwidlone repozytorium Git me / foobar .
Kliknij Porównaj :
Otrzymasz powiadomienie:
Kliknij na przełączanie bazy na tej stronie:
Następnie zobaczysz wszystkie zobowiązania popełnione wobec kogoś / foobara po dniu, w którym je rozwidliłeś.
Kliknij Utwórz żądanie ściągnięcia :
Nadaj żądaniu ściągnięcia tytuł, a może opis i kliknij Utwórz żądanie ściągnięcia .
Na następnej stronie przewiń w dół strony i kliknij opcję Połącz żądanie ściągnięcia i Potwierdź scalenie .
Twoje repozytorium Git ja / foobar zostanie zaktualizowane.
Edycja: opcje bazy są pokazane tutaj:
źródło
Edit
przycisk i ręcznie przełączyćbase fork
sięme/foobar
ihead fork
dosomeone/foobar
. W ten sposób jest to o wiele jasneJest jednak jedno zastrzeżenie:
jest to idealne rozwiązanie, jeśli tylko Ty wprowadzasz zmiany w widelcu.
Jeśli jednak jest udostępniany innym osobom, może być konieczne wyciągnięcie z widelca, w którym to przypadku oddzielny pilot jest jedynym rozwiązaniem.
Edycja:
W rzeczywistości możesz to zrobić
git pull [email protected]:me/foobar
, co usuwa zastrzeżenie.Wybór należy do ciebie, co jest łatwiejsze do zapamiętania.
źródło
Użyłem dość prostej metody przy użyciu interfejsu internetowego GitHub, aby to zrobić:
me/foobar
)źródło
Aplikacja „Pull” to rozwiązanie do automatycznej konfiguracji i zapomnienia. Zsynchronizuje domyślną gałąź twojego widelca z repozytorium nadrzędnym.
Odwiedź adres URL, kliknij zielony przycisk „Zainstaluj” i wybierz repozytoria, w których chcesz włączyć automatyczną synchronizację.
Oddział jest aktualizowany raz na godzinę bezpośrednio na GitHub, na komputerze lokalnym musisz pobrać oddział główny, aby upewnić się, że twoja kopia lokalna jest zsynchronizowana.
Odpowiedział także w https://stackoverflow.com/a/58965171/946850 .
źródło
Inną opcją jest użycie
Update from upstreamRepoName/master
przycisku w GitHub na Maca (i zakładam, że GitHub na Windows).źródło
Nie wiem, jak można to zrobić bez dodawania kolejnego pilota, jednak zawsze dodam repozytorium, z którego rozwidliłem się jako
upstream
pilot, aby móc po prostu zrobić:Spowoduje to zsynchronizowanie wszystkich gałęzi, w tym. tworzenie nowych (usuń,
refs/heads/
aby zaktualizować tylko istniejące oddziały). Jeśli któryś z twoich oddziałów się rozdzielił, wygeneruje błąd dla tego oddziału.źródło