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ą
fixgałąź (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 masterbył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
( upstreambę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 upstreamrepozytorium).
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, upstreammoż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 upstreammaster, 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łąź fixna podstawie zaktualizowanej master).
Jeśli wykonałeś więcej pracy od czasu żądania ściągnięcia, nie połączyłbym się z, upstreamgdybym 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 masterzatwierdzeniami (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 upstreambez potrzeby rozwiązywania scalania: scalenie tych nowych zatwierdzeń w upstreamrepozytorium będzie oznaczać proste szybkie scalanie do przodu.
A git pull --rebasebez określenia gałęzi, na której chcesz zmienić bazę (aktualnie wyewidencjonowaną) fixgałąź 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 fixoddziału?
Tak, możesz określić gałąź, która będzie celem żądania ściągnięcia, na przykład „ master”.
To nie usunie twojej fixgałęzi, ale odtworzy ją na wierzchu masterpobranego z twojego repozytorium.
:)