シャローリポジトリー(Shallow Repository)
リポジトリーをクローンする際、デフォルトでは「リモートリポジトリー」にあるすべての「スナップショット」が「ローカルリポジトリー」にコピーされます。この時、「リモートリポジトリー」からコピー(取得)する「スナップショット」数を制限することができます。
巨大なリポジトリーをクローンする時に有効
取得する「スナップショット」数の制限は、特に巨大なリポジトリーをクローンする時に有効です。例えば、1000回コミットが行われたリポジトリーには、1000個の「スナップショット」が存在します。
このようなリポジトリーをクローンした際、古い「スナップショット」を参照する機会はほとんど無いでしょう。
取得する「スナップショット」数を制限してクローンすることで、クローンにかかる時間を節約できます。
また、「ローカルリポジトリー」が消費するHDDの使用量も軽減できます。
取得するスナップショットの数
「リモートリポジトリー」から取得する「スナップショット」の数は、ブランチの「ブランチヘッド」が指す最新の「スナップショット」から数を数えます。例えば、取得する「スナップショット」数に「2」を指定すると、最新の「スナップショット」と一つ前の「スナップショット」を取得します。
シャロークローン(Shallow Clone)
上記のように、取得する「スナップショット」数を制限してクローンすることを、「シャロークローン」と表現します。「シャロークローン」のシャロー(shallow)とは、「浅い」という意味です。
シャローリポジトリー(Shallow Repository)
「シャローリポジトリー」とは、上記のように不完全な「スナップショット」群を持つリポジトリーのことです。「スナップショット」が不完全なので、履歴も不完全な履歴になります。
もし「リモートリポジトリー」から取得していない過去の「スナップショット」が必要になった時は、いつでも「リモートリポジトリー」から取得することができます。
シャローリポジトリーの例
シャローリポジトリーの例です。1.リモートリポジトリーのブランチ構成
「リモートリポジトリー」のブランチ構成は、以下のようになっています。2.シャロークローン
取得する「スナップショット」数に「2」を指定してクローンすると、以下のように「master」ブランチの「ブランチヘッド」が指す「スナップショット」から、2つ「スナップショット」を取得します。特定のブランチを指定した場合
チェックアウトするブランチを指定した場合、そのブランチの「ブランチヘッド」が指す「スナップショット」から、指定された数の「スナップショット」を取得します。以下は、チェック後するブランチに「fix」を指定し、取得する「スナップショット」数に「3」を指定して、シャロークローンした場合です。
すべてのブランチを指定した場合
すべてのブランチの「ブランチヘッド」が指す「スナップショット」を取得することもできます。以下はすべてのブランチを対象にして、取得する「スナップショット」数に「2」を指定し、シャロークローンした場合です。