Jaka jest różnica między źródłem a wyższym poziomem w GitHub?

Odpowiedzi:

803

Należy to rozumieć w kontekście widelców GitHub (gdzie rozwidlasz repozytorium GitHub na GitHub przed klonowaniem tego rozwidlenia lokalnie).

  • upstreamogólnie odnosi się do oryginalnego repozytorium, które rozwidliłeś
    (zobacz także „ Definicja„ downstream”i„ upstream ”, aby uzyskać więcej upstreamterminów)
  • origin jest twoim widelcem: twoje własne repozytorium na GitHub, klon oryginalnego repozytorium GitHub

Ze strony GitHub:

Kiedy klonowane jest repo, ma domyślny pilot o nazwie, originktóry wskazuje na twój widelec na GitHub, a nie oryginalne repo, z którego został rozwidlony.
Aby śledzić oryginalne repozytorium, musisz dodać innego pilota o nazwieupstream

git remote add upstream git://github.com/<aUser>/<aRepo.git>

(z aUser/aRepoodniesieniem do oryginalnego twórcy i repozytorium, które rozwidliłeś)

Będziesz używać upstreamdo pobrania z oryginalnego repo (w celu utrzymania lokalnej kopii w synchronizacji z projektu, który ma przyczynić się do).

git fetch upstream

( git fetchsam pobierałby origindomyślnie, co nie jest tutaj potrzebne)

Użyjesz origindo ciągnięcia i wypychania, ponieważ możesz przyczynić się do własnego repozytorium.

git pull
git push

(znowu bez parametrów domyślnie używane jest „pochodzenie”)

Wrócisz do upstreamrepozytorium, składając żądanie ściągnięcia .

widelec i pod prąd

VonC
źródło
11
Pomaga również wiedzieć, co upstreamjest ogólnie: stackoverflow.com/questions/2739376/…
VonC
2
@MaxRydahlAndersen prawda, ale lubię używać Git bez otoki, więc na razie zachowam tę konwencję (w górę i w górę).
VCC
22
Zdecydowanie najlepsze wyjaśnienie, w jaki sposób działają widelce, jakie widziałem. Dostajesz moją opinię.
CodeChimp,
9
Świetna praca nad grafiką. Bardzo prosta i zrozumiała odpowiedź. Właśnie tego szukałem.
tayopi,
1
@iamrudra, jeśli git remote -v pokazuje ten sam adres URL dla źródła i źródła, wtedy tak, naciskasz na to samo zdalne repozytorium.
VCC