8

help.githubのプロジェクトのフォークに関するアップストリームの変更のプルインのセクションでは、次のように述べています。

しばらく経ちましたが、アップストリームリポジトリが変更されたため、新しいパッチを送信する前にフォークを更新する必要があります。これを行うには2つの方法があります。

$ git fetch upstream master

$ git merge upstream/master

なぜそれらmasterはfetchコマンドに含まれているのですか?情報を見てきましたが、git help fetch何を含めているのかわかりmasterません。ありがとう。

4

1 に答える 1

6

これにより、次のことが可能になります。

  • マスターアップストリームブランチのローカルバージョンのみを更新します(アップストリームリポジトリのすべてのブランチを更新するのではなく、実行に時間がかかる場合があります)
  • (pullコマンドとは対照的に)すぐにマージをトリガーしません

次にgit merge、はそのローカルバージョンのアップストリームマスターをリポジトリマスターブランチにマージしようとします。

したがって、ここでは、マスターはfetchコマンドの場合、refspecです。

<refspec>

パラメータの形式<refspec>は、オプションのプラス+、ソースref <src>、コロン:、宛先refの順<dst>です。

一致するリモート参照<src>がフェッチされ、<dst>が空の文字列でない場合は、それに一致するローカル参照が。を使用して早送りされ<src>ます。
オプションのplus+を使用すると、早送り更新が行われなくても、ローカル参照が更新されます。

ここでは、<dst>が空であるため、一致するローカルブランチ(マスター)が更新されます。


マスターがいなければ、それは次のようになります。

git fetch upstream 

上記のコマンドは、オプションを使用してデフォルト以外のrefspecを指定しない限り、すべてのブランチをリモート名前空間からコピーrefs/heads/してローカル名前空間に格納します。refs/remotes/upstream/branch.<name>.fetch

于 2010-01-06T16:47:51.413 に答える