2012-01-20 11 views
42

czytałem na: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstreamCo pozwala uzyskać pomoc "git remote add upstream"?

Oto fragment:

repozytorium aktualne

Aby uzyskać najnowsze aktualizacje z pnia rozwojowego zrobić jednorazowa konfiguracja do ustanowienia głównego repozytorium GitHub jako zdalnego przez: wprowadzenie:

$ git remote add upstream git://github.com/diaspora/diaspora.git 

Rozwiń gałąź rozwojowa do najnowszej wersji rozwojowej. Aby uzyskać aktualizację gałęzi rozwojowej, zmień zmiany na górę aktualnego stanu nadrzędnego wzorca. Zobacz git-rebase What's ? sekcję poniżej, aby dowiedzieć się więcej o zmianie bazy.

Jeśli założyć oddział upstream, jak opisano powyżej, a oddział rozwój nazywa 100-retweet-Bugfix, chcesz zaktualizować Upstream, aktualizacji lokalnego mistrza i zmieniają bazę swój oddział z nim tak:

$ git fetch upstream 

$ git checkout master 

$ git rebase upstream/master 

$ git checkout 100-retweet-bugfix 

[upewnić wszystko jest zaangażowana jako niezbędne w branży]

$ git rebase master 

Dlaczego jest dodanie 'remote upstream' konieczna w tym przypadku? Coudn't właśnie zrobić:

$ git checkout master 

$ git pull origin master 

$ git checkout 100-retweet-bugfix 

[upewnić wszystko jest zaangażowana jako niezbędne w branży]

$ git rebase master 
+0

powinieneś zrobić 'git remote add', a nie' git add remote' ... – Honey

Odpowiedz

52

Wiki rozmawia z rozwidloną punktu widzenia repo. Masz dostęp do naciągania i pchania od początku, co będzie twoim rozwidleniem głównego repozytorium diaspory. Aby pobrać zmiany z tego głównego repo, dodajesz zdalnego, "upstream" w lokalnym repo, wskazując na ten oryginał i wyciągasz z niego.

Więc „pochodzenie” jest klonem widelca repo, z którego pchają i ciągną. "Upstream" to nazwa głównego repo, z którego pobierasz i aktualizujesz klon widelca, ale nie masz dostępu do niego.

+1

Dziękuję @manojlds! Mam tu następujące pytanie: [link] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error) – ben39

13

Funkcja ta jest przydatna, gdy masz własną origin który nie jest upstream. Innymi słowy, możesz mieć własne repozytorium origin, w którym tworzysz zmiany lokalne i lokalne, a następnie od czasu do czasu scalasz zmiany upstream. Różnica między twoim przykładem a zaznaczonym tekstem polega na tym, że twój przykład zakłada, że ​​pracujesz bezpośrednio z klonem repozytorium. Podświetlony tekst zakłada, że ​​pracujesz nad klonem własnego repo, który prawdopodobnie był początkowo klonem wyższego szczebla.

+0

Dziękuję @mparkes! to było naprawdę pomocne. Mam tu następujące pytanie: [link] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error) – ben39

2

myślę, że może on być stosowany do „wstecznie rozwidlone”

Jeśli masz repo Git, a teraz zdecydował, że powinien on rozwidlony innego repo. Retroaktywnie chciałbyś, aby stał się widelcem, bez zakłócania pracy zespołu, który korzysta z repo, wymagając, by celował w nowe repozytorium.

Ale mogę się mylić.

+0

Jaką wartość ma ta odpowiedź po udzieleniu odpowiedzi na pytanie sprzed 5 lat? I wciąż nie jesteś nawet pewny poprawnej odpowiedzi ... –

+0

@MaciejJureczko Nie jestem sam w zastanawianiu się, jak "retroaktywnie rozwidlić", jeśli to pytanie/odpowiedź dyskutuje jak (co myślę, że jest, ale ja jestem niepewny). To pytanie może być wykorzystane jako odpowiedź na inne pytania. https://stackoverflow.com/questions/30472771/marking-a-repo-as-a-fork-in-github-fter-the-fact ... jeśli to jest sposób na retroaktywne rozwidlanie, teraz można go znaleźć za pomocą te wyszukiwane hasła. Zajęło mi trochę czasu, aby pomyśleć, że być może dodanie repozytorium w górę strumienia może być tym, czego szukałem. Jeśli OP byłaby jedyną publicznością, nie archiwizowałoby pytań z "5 lat temu". – Onceler

Powiązane problemy