2012-02-13 4 views
222

Jaka jest różnica między origin a upstream na GitHub?Jaka jest różnica między początkiem a wyższym na GitHub?

Gdy polecenie git branch -a jest zrobione, niektóre branże mają prefiks origin (remotes/origin/..), podczas gdy inne mają prefiks upstream (remotes/upstream/..).

+1

pokrewne [Definicja "z prądem" i "pod prąd"] (https://stackoverflow.com/q/2739376/465053) w git. – RBT

Odpowiedz

468

to należy rozumieć w kontekście GitHub forks (gdzie widelec repo GitHub w GitHub przed klonowaniem, widełki lokalnie)

Od strony GitHub:

Kiedy repo klonuje, posiada domyślne zdalnego nazwie origin wskazujący do rozwidlenia na GitHub, a nie oryginalne repo było rozwidlony od.
Aby śledzić oryginalnego repo, trzeba dodać kolejny pilot zdalnego nazwie upstream

git remote add upstream git://github.com/user/repo.git 

Będziesz korzystać upstream do pobrać z oryginalnego repo (w celu utrzymania lokalnej kopii w synchronizacji z projekt, do którego chcesz przyczynić się).

git fetch upstream 

(git fetch sam będzie pobierał od origin domyślnie, co jest nie to, co jest tu potrzebne)

Będziesz korzystać origin do ciągnienia i nacisku ponieważ można przyczynić się do własnego repo.

git pull 
gut push 

(ponownie, bez parametrów 'pochodzenie' jest używany domyślnie)

przyczynisz się z powrotem do upstream repo dokonując pull request.

fork and upstream

+5

Pomaga także wiedzieć, co to jest 'upstream' ogólnie: http://stackoverflow.com/questions/2739376/definition-of-downstream-and-upstream/2749166#2749166 – VonC

+0

Warto wspomnieć w kontekście github ma to więcej sensu mieć pochodzenie master-repo i używać nazwy użytkownika github jako nazwy zdalnej dla twoich i innych wideł. Narzędzia takie jak defunkt.io/hub robią to i sprawiają, że praca z repozytoriami i współpraca pomiędzy widłami jest bardziej jednolita. –

+2

@MaxRydahlAndersen prawda, ale lubię używać Git bez wrappera, więc zachowam tę konwencję (upstream vs. origin) na teraz. – VonC

Powiązane problemy