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.