2013-11-09 15 views
10

Rozwidlałem projekt Githuba, a następnie sklonowałem go lokalnie.git - zaktualizuj widelec na master & rebase mój oddział na to?

Potem dokonałem pewnych zmian w nowym oddziale na repozytorium my_github/the_project.

Następnie dodałem i zatwierdziłem zmiany i pchnąłem do mojego repozytorium github i przesłałem żądanie ściągnięcia.

Właściciel otrzymał moją prośbę i chciałbym, abym "przeorganizował master", aby uzyskać najnowsze zmiany. Jak mam to zrobic?

Początkowo myślałem, że mogę tylko git fetch i rebase master z mojej aktualnej gałęzi (jak większość postów znalazłem doradzić ...), ale git fetch nic nie zrobił. Teraz zdałem sobie sprawę, że jest to prawdopodobnie spowodowane tym, że nadal ściągam z klonu my_ github/repo (w końcu to moje nazwisko w pilotach), który jeszcze nie dostał nowych zmian w master od właściciela źródła github.

myślę co pewnie trzeba zrobić, to „odświeżyć” mój widelec tak, że mistrz widelec jest up-to-date i następnie mogę pobrać ten mistrz i następnie rebase do tego pana?

Jeśli tak, to jak mogę zrobić to odświeżenie mojego widelca? Jeśli nie, to jak inaczej?

Czy powinienem dodać pilota do oryginalnego repozytorium i użyć go do ponownego wykorzystania z (lokalnie)? Czy to jest preferowana metoda?

Odpowiedz

10

Tak, nic nie przynosi ze względu na przypuszczenie. I tak, powinieneś dodać pilota do lokalnego źródła; wykona szybkie przewijanie do przodu na master.

git checkout master # Make sure you are in master 
git remote add author original_repo_that_you_forked_from 
    # Note: This is in the format [email protected]:authors_name/repo_name.git 
    #  Only needs definition once, future fetches then use it. 
git fetch author 
git status # make sure you are in the master branch for the following merge 
git merge author/master # i.e. 'into' your master branch 
git checkout your-branch 
git rebase master  # Now get those changes into your branch. 
git push origin your_branch # You can also use `-f` if necessary and `--all` 

(przepraszam, nie może mieć składnię dokładnie prawo)

+0

może chcesz określić pilota w Push, Push pochodzenia jak 'git --all', ale poza tym, że jest dokładnie to, co ja sugerował. – Leigh

+0

Z tego githubu [rebase and merge blog] (https://github.com/blog/2243-rebase-and-merge-pull-requests), możemy powiedzieć, że nawet jeśli uczestnik nie dokonał ponownej zmiany, powinien być bardzo wygodnym dla autora do ponownego połączenia i połączenia? W takim przypadku nie rozumiem, dlaczego PR został wstrzymany, ponieważ nie jest on ponownie tworzony. – Felix

+0

Bo jeśli występują konflikty, opiekun niekoniecznie będzie wiedział, jak je naprawić. Autor jest najlepiej przygotowany, aby je naprawić. –

Powiązane problemy