Was ist der Unterschied zwischen Origin und Upstream auf GitHub?


Antworten:


803

Dies sollte im Zusammenhang mit GitHub-Gabeln verstanden werden (bei denen Sie ein GitHub-Repo auf GitHub gabeln, bevor Sie diese Gabel lokal klonen).

  • upstreambezieht sich im Allgemeinen auf das ursprüngliche Repo, das Sie gegabelt haben
    (siehe auch " Definition von" downstream"und upstream" "für weitere upstreamInformationen)
  • origin ist deine Gabel: dein eigenes Repo auf GitHub, Klon des ursprünglichen Repos von GitHub

Von der GitHub-Seite:

Wenn ein Repo geklont wird, hat es eine Standardfernbedienung namens origin, die auf Ihre Gabel auf GitHub zeigt, nicht auf das ursprüngliche Repo, von dem es gegabelt wurde.
Um den Überblick über das ursprüngliche Repo zu behalten, müssen Sie eine weitere Fernbedienung mit dem Namen hinzufügenupstream

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

(mit aUser/aRepo der Referenz für den ursprünglichen Ersteller und das ursprüngliche Repository, die Sie gegabelt haben)

Sie werden verwenden upstream, um vom Original-Repo abzurufen (um Ihre lokale Kopie mit dem Projekt synchron zu halten, zu dem Sie beitragen möchten).

git fetch upstream

( git fetchallein würde originstandardmäßig abrufen, was hier nicht benötigt wird)

Sie werden originzum Ziehen und Schieben verwenden, da Sie zu Ihrem eigenen Repository beitragen können.

git pull
git push

(Auch hier wird ohne Parameter standardmäßig 'origin' verwendet.)

Sie werden einen Beitrag zum upstreamRepo leisten, indem Sie eine Pull-Anfrage stellen .

Gabel und stromaufwärts


11
Es hilft auch zu wissen, was upstreamallgemein ist: stackoverflow.com/questions/2739376/…
VonC

2
@MaxRydahlAndersen stimmt, aber ich verwende Git gerne ohne Wrapper, daher werde ich diese Konvention (Upstream vs. Origin) vorerst beibehalten.
VonC

22
Bei weitem die beste Erklärung dafür, wie Gabeln funktionieren, die ich gesehen habe. Du bekommst meine Gegenstimme.
CodeChimp

9
Tolle Arbeit am Visuellen. Sehr direkte und verständliche Antwort. Genau das habe ich gesucht.
Tayopi

1
@iamrudra Wenn git remote -v dieselbe URL für Ursprung und Upstream anzeigt, dann pushen Sie auf dasselbe Remote-Repo.
VonC
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.