GitHubのオリジンとアップストリームの違いは何ですか?


回答:


804

これは、GitHubフォークのコンテキストで理解する必要があります(フォークをローカルに複製する前にGitHubでGitHubリポジトリをフォークします)。

  • upstream通常は、分岐した元のリポジトリを
    参照します(用語の詳細については、「downstream」および「upstream」の定義も参照してくださいupstream)。
  • origin はあなたのフォークです:GitHubの元のリポジトリのクローンであるGitHub上の独自のリポジトリ

GitHubページから:

リポジトリが複製されると、デフォルトのリモートと呼ばれるリモートoriginがあり、フォークされた元のリポジトリではなく、GitHub上のフォークを指します。
元のリポジトリを追跡するには、別の名前のリモートを追加する必要がありますupstream

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

aUser/aRepo元の作成者とリポジトリの参照を使用して、分岐した)

を使用upstreamて、元のリポジトリからフェッチします(ローカルコピーを、貢献したいプロジェクトと同期させるため)。

git fetch upstream

(デフォルトでは、git fetch単独でフェッチoriginしますが、ここでは必要ありません)

自分のリポジトリに貢献できるので、プルとプッシュに使用originします。

git pull
git push

(ここでも、パラメータなしで、デフォルトで「origin」が使用されます)

あなたはプルリクエストupstreamをすることでリポジトリに貢献します。

フォークと上流


11
また、何を知ることができますupstream一般的です:stackoverflow.com/questions/2739376/...
VonC

2
@MaxRydahlAndersenはtrueですが、ラッパーなしでGitを使用するのが好きなので、今はその規則(上流と起点)を維持します。
VonC 2013

22
私が見た中でフォークがどのように機能するかについての断然最高の説明。あなたは私の賛成票を取得します。
CodeChimp、2015

9
ビジュアルの素晴らしい仕事。非常に簡単でわかりやすい答え。これはまさに私が探していたものでした。
tayopi

1
@iamrudra git remote -vが起点とアップストリームに同じURLを表示する場合、はい、同じリモートリポジトリにプッシュしています。
VonC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.