Co dalej to: kontynuowanie dodawania nowych funkcji lub naprawianie innych błędów w ich własnych dedykowanych gałęziach (wypychanych tylko do forka).
Oznacza to, że widelec pozostaje, ale gałęzie w widelcu mogą wchodzić i odchodzić.
Możesz również usunąć widełki, jeśli nie planujesz dalej wnosić wkładu, ale spowoduje to usunięcie odpowiedniego wpisu w „Repozytoriach, do których przyczyniasz się” .
Łatwiej jest:
- usuń swoją
fix
gałąź (właściwie jest teraz usunięta dla Ciebie ) na Twoim forku (i w lokalnym sklonowanym repozytorium: zobacz „ Usuwanie gałęzi Git zarówno lokalnie, jak i zdalnie ”)
git pull upstream master
(jeśli master
była to gałąź, w której została zintegrowana twoja poprawka: scalanie będzie przyspieszone): w tym momencie nie jest potrzebne ponowne bazowanie.
- odtwórz gałąź poprawek na zaktualizowanym lokalnym
master
(teraz z najnowszą wersją z upstream master
).
Jednak nigdy nie zapomnij o jednym kroku przed przesłaniem przyszłego żądania ściągnięcia:
Najpierw odtwórz bieżącą gałąź ( fix
) z górnej gałęzi docelowej
( upstream
będąc oryginalnym repozytorium, które rozwidliłeś: zobacz „ Jaka jest różnica między źródłem początkowym a wyższym w githubie ”)
Przed przesłaniem czegokolwiek z powrotem do oryginalnego repozytorium („upstream”), musisz upewnić się, że Twoja praca opiera się na najnowszych informacjach z tego pierwotnego repozytorium (w przeciwnym razie żądanie ściągnięcia nie spowoduje szybkiego scalenia do przodu po zastosowaniu ponownie w upstream
repozytorium).
Zobacz na przykład „ Przepływ pracy dotyczący zarządzania żądaniami ściągnięcia dla udostępnionych repozytoriów na githubie ”.
Innymi słowy, upstream
może ewoluować (narzucane są nowe zatwierdzenia), gdy jesteś zajęty naprawianiem rzeczy. Musisz odtworzyć swoje poprawki na podstawie ostatniej pracy z nadawcy, aby upewnić się, że zmiany są nadal zgodne z najnowszymi upstream
.
OP Santosh Kumar pyta w komentarzach :
Wyciągnąłem i połączyłem się z upstream
master, co teraz?
Jeśli nie wprowadziłeś żadnych nowych poprawek od ostatniego żądania ściągnięcia, zobacz powyżej (usuń i utwórz nową gałąź fix
na podstawie zaktualizowanej master
).
Jeśli wykonałeś więcej pracy od czasu żądania ściągnięcia, nie połączyłbym się z, upstream
gdybym chciał utworzyć nowe żądanie ściągnięcia: Wyciągnąłbym i ponownie bazował :
git pull --rebase upstream master
W ten sposób cała moja nowa lokalna praca jest odtwarzana wraz z najnowszymi upstream
master
zatwierdzeniami (pobranymi z mojego lokalnego repozytorium), zakładając, żemaster
jest to gałąź docelowa, która zintegruje moje przyszłe żądanie ściągnięcia.
Następnie mogę skierować moją lokalną pracę do ' origin
', czyli mojego rozwidlenia na GitHubie upstream
.
Z mojego rozwidlenia na GitHubie mogę bezpiecznie wykonać żądanie ściągnięcia, wiedząc, że doda ono tylko nowe zatwierdzenia upstream
bez potrzeby rozwiązywania scalania: scalenie tych nowych zatwierdzeń w upstream
repozytorium będzie oznaczać proste szybkie scalanie do przodu.
A git pull --rebase
bez określenia gałęzi, na której chcesz zmienić bazę (aktualnie wyewidencjonowaną) fix
gałąź nie zadziała:
To ( git pull --rebase
) mówi:
You asked to pull from the remote '`upstream`', but did not specify a branch.
Czy powinienem wreszcie dołączyć mistrza? A co to zrobi? Czy spowoduje usunięcie mojego fix
oddziału?
Tak, możesz określić gałąź, która będzie celem żądania ściągnięcia, na przykład „ master
”.
To nie usunie twojej fix
gałęzi, ale odtworzy ją na wierzchu master
pobranego z twojego repozytorium.
:)