リモートトラッキングブランチの例
「リモートトラッキングブランチ」の例です。1.現在のリモートリポジトリー
例として、クローン元の「リモートリポジトリー」は、以下のようになっています。2.リポジトリーのクローン
「リモートリポジトリー」をクローンすると、「ローカルリポジトリー」は以下のようになります。ブランチ名に「origin/」が付いているブランチが、「リモートトラッキングブランチ」です。
3.ローカルリポジトリーで作業を行う
「ローカルリポジトリー」で以下のように作業を行いました。「Commit3」と「Commit4」が、「ローカルリポジトリー」で行った作業です。
4.リモートリポジトリーが更新される
他のユーザーによって、「リモートリポジトリー」が以下のように更新されました。「Commit8」と「Commit9」が、追加されています。
5.リモートブランチとリモートトラッキングブランチの状態が異なる
「リモートリポジトリー」の更新が自動的に「ローカルリポジトリー」に反映されることはありません。従って「ローカルリポジトリー」は、「3.」の状態のままです。
ここで「リモートブランチ」と「リモートトラッキングブランチ」にズレが生じており、それぞれの「ブランチヘッド」が指す「コミットオブジェクト」が異なっています。
「4.」の「リモートブランチ」の「ブランチヘッド」は「Commit9」を指しています。
「3.」の「リモートトラッキングブランチ」の「ブランチヘッド」は「Commit4」を指しています。
6.リモートリポジトリーからfetchする
ここで「リモートリポジトリー」からfetchを行います。「ローカルリポジトリー」は、以下のようになります。
「リモートリポジトリー」で行われたコミットがダウンロードされ、「リモートトラッキングブランチ」が更新されます。
複数のリモートリポジトリーを追加した場合
1つの「ローカルリポジトリー」に複数の「リモートリポジトリー」を設定することができます。1.もう一つのリモートリポジトリー
ここでは例として、以下の「リモートリポジトリー」を「ローカルリポジトリー」に追加します。「ローカルリポジトリー」の状態は、上記の「6.」の状態です。
リモートリポジトリー名は、「another」とします。
2.ローカルリポジトリーの状態
「ローカルリポジトリー」は、以下のようになります。見ての通り、「another/HEAD」と「another/master」が追加されます。
これらのブランチは、「リモートトラッキングブランチ」ブランチです。