web-dev-qa-db-ja.com

「git remote add upstream」は何を達成するのに役立ちますか?

私が読んでいた: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstream

以下が抜粋です。

最新のリポジトリ

開発トランクから最新の更新を取得するには、次のように入力して、メインのGitHubリポジトリをリモートとして確立するための1回限りのセットアップを行います。

$ git remote add upstream git://github.com/diaspora/diaspora.git

開発ブランチを最新のアップストリームにリベースします

開発ブランチを最新の状態に保つには、アップストリームマスターの現在の状態に基づいて変更をリベースします。 git-rebaseとはをご覧ください。リベースの詳細については、以下のセクションをご覧ください。

上記のようにアップストリームブランチと100-retweet-bugfixという開発ブランチをセットアップした場合、アップストリームを更新し、ローカルマスターを更新し、そこからブランチをリベースします。

$ git fetch upstream

$ git checkout master

$ git rebase upstream/master

$ git checkout 100-retweet-bugfix

[すべてがブランチで必要に応じてコミットされていることを確認してください]

$ git rebase master

この場合、「リモートアップストリーム」を追加する必要があるのはなぜですか?私がやったばかりではない:

$ git checkout master

$ git pull Origin master

$ git checkout 100-retweet-bugfix

[すべてがブランチで必要に応じてコミットされていることを確認してください]

$ git rebase master
59
ben39

Wikiは分岐レポの観点から話しています。 Originからpullおよびpushすることができます。これは、メインのdiasporaリポジトリの分岐点になります。このメインリポジトリから変更を取り込むには、ローカルリポジトリにリモートの「上流」を追加し、この元のリポジトリをポイントしてそこからプルします。

したがって、「Origin」はフォークレポジトリのクローンであり、そこからプッシュおよびプルします。 「上流」はメインリポジトリの名前であり、そこからフォークのクローンを取得して更新しますが、そこにプッシュアクセスすることはできません。

67
manojlds

これは、Originではない独自のupstreamがある場合に便利です。つまり、独自のOriginリポジトリを作成し、そのリポジトリで開発とローカルの変更を行った後、upstreamの変更をマージする場合があります。例と強調表示されたテキストの違いは、例では、アップストリームリポジトリのクローンを直接操作していると想定していることです。強調表示されたテキストは、おそらく元々はアップストリームのクローンだった、独自のリポジトリのクローンで作業していることを前提としています。

15
smparkes

「再帰的にフォーク」に使用できると思います

Gitリポジトリがあり、別のリポジトリをフォークする必要があると判断した場合。遡及的に、新しいレポをターゲットにするためにレポを使用する必要があるため、レポを使用するチームを混乱させることなく、フォークになりたいと考えています。

しかし、私は間違っている可能性があります。

4
Onceler