Qual è la differenza tra origin e upstream su GitHub?


Risposte:


805

Questo dovrebbe essere compreso nel contesto delle forcelle GitHub (dove esegui il fork di un repository GitHub su GitHub prima di clonare quel fork localmente).

  • upstreamgeneralmente si riferisce al repository originale che hai biforcato
    (vedi anche " Definizione di" downstream"e" upstream" " per maggiori informazioni sul upstreamtermine)
  • origin è il tuo fork: il tuo repository su GitHub, clone del repository originale di GitHub

Dalla pagina GitHub:

Quando un repository viene clonato, ha un telecomando predefinito chiamato originche punta al fork su GitHub, non al repository originale da cui è stato biforcato.
Per tenere traccia del repository originale, è necessario aggiungere un altro telecomando denominatoupstream

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

(con aUser/aRepo il riferimento per il creatore e il repository originali, che hai biforcato)

Utilizzerai upstreamper recuperare dal repository originale (al fine di mantenere la tua copia locale sincronizzata con il progetto a cui vuoi contribuire).

git fetch upstream

(da git fetchsolo prenderebbe originper impostazione predefinita, che non è ciò che è necessario qui)

Utilizzerai originper tirare e spingere poiché puoi contribuire al tuo repository.

git pull
git push

(di nuovo, senza parametri, 'origine' viene utilizzata per impostazione predefinita)

Contribuirai di nuovo al upstreamrepository facendo una richiesta pull .

forcella e monte


11
Aiuta anche sapere che cosa upstreamè in genere: stackoverflow.com/questions/2739376/...
VonC

2
@MaxRydahlAndersen vero, ma mi piace usare Git senza wrapper, quindi per ora manterrò quella convenzione (upstream vs. origin).
VonC,

22
Di gran lunga la migliore spiegazione di come funzionano le forcelle che ho visto. Ottieni il mio voto.
CodeChimp,

9
Ottimo lavoro visivo. Risposta molto diretta e comprensibile. Questo era esattamente quello che stavo cercando.
tayopi,

1
@iamrudra se git remote -v mostra lo stesso url per origin e upstream, quindi sì, stai spingendo nello stesso repository remoto.
VonC,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.