kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu Git その33 - 取得するスナップショット数を制限するシャローリポジトリーとは

シャローリポジトリー(Shallow Repository)

  リポジトリーをクローンする際、デフォルトでは「リモートリポジトリー」にあるすべての「スナップショット」が「ローカルリポジトリー」にコピーされます。

  この時、「リモートリポジトリー」からコピー(取得)する「スナップショット」数を制限することができます。


  巨大なリポジトリーをクローンする時に有効

    取得する「スナップショット」数の制限は、特に巨大なリポジトリーをクローンする時に有効です。

    例えば、1000回コミットが行われたリポジトリーには、1000個の「スナップショット」が存在します。
    このようなリポジトリーをクローンした際、古い「スナップショット」を参照する機会はほとんど無いでしょう。

    取得する「スナップショット」数を制限してクローンすることで、クローンにかかる時間を節約できます。
    また、「ローカルリポジトリー」が消費するHDDの使用量も軽減できます。

  取得するスナップショットの数

    「リモートリポジトリー」から取得する「スナップショット」の数は、ブランチの「ブランチヘッド」が指す最新の「スナップショット」から数を数えます。

    例えば、取得する「スナップショット」数に「2」を指定すると、最新の「スナップショット」と一つ前の「スナップショット」を取得します。

  シャロークローン(Shallow Clone)

    上記のように、取得する「スナップショット」数を制限してクローンすることを、「シャロークローン」と表現します。

    「シャロークローン」のシャロー(shallow)とは、「浅い」という意味です。
 

  シャローリポジトリー(Shallow Repository)

    「シャローリポジトリー」とは、上記のように不完全な「スナップショット」群を持つリポジトリーのことです。

    「スナップショット」が不完全なので、履歴も不完全な履歴になります。

    もし「リモートリポジトリー」から取得していない過去の「スナップショット」が必要になった時は、いつでも「リモートリポジトリー」から取得することができます。

シャローリポジトリーの例

  シャローリポジトリーの例です。

  1.リモートリポジトリーのブランチ構成

     「リモートリポジトリー」のブランチ構成は、以下のようになっています。


  2.シャロークローン

     取得する「スナップショット」数に「2」を指定してクローンすると、以下のように「master」ブランチの「ブランチヘッド」が指す「スナップショット」から、2つ「スナップショット」を取得します。



  特定のブランチを指定した場合

    チェックアウトするブランチを指定した場合、そのブランチの「ブランチヘッド」が指す「スナップショット」から、指定された数の「スナップショット」を取得します。

    以下は、チェック後するブランチに「fix」を指定し、取得する「スナップショット」数に「3」を指定して、シャロークローンした場合です。


  すべてのブランチを指定した場合

    すべてのブランチの「ブランチヘッド」が指す「スナップショット」を取得することもできます。
    以下はすべてのブランチを対象にして、取得する「スナップショット」数に「2」を指定し、シャロークローンした場合です。



Git
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 22.04 その95 - ディスプレイサーバーを切り替えるには・XorgとWayland
    ディスプレイサーバーを切り替えるには 「Ubuntu」はデフォルトで2種類のディスプレイサーバーを提供しています。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
  • Linux その309 - This Week in Plasma の貢献者の募集と投稿頻度の抑制
    This Week in Plasma の貢献者の募集と投稿頻度の低下 KDE で This Week in Plasma の貢献者が募集されています。
  • Ubuntu 26.04 その5 - デイリービルドのディスクイメージが利用可能に・ディスクイメージのダウンロード
    デイリービルドのディスクイメージ Ubuntu 26.04 LTS のデイリービルドのディスクイメージが利用できるようになりました。
  • Ubuntu 26.04 その9 - Ubuntu Desktop 26.04 LTS の開発方針・プリインストールアプリの変更やソフトウェア管理の一元化など
    Ubuntu Desktop 26.04 LTS の開発方針 2025年11月26日、Ubuntu Desktop 26.04 LTS の開発方針がアナウンスされました。
  • Ubuntu nano その5 - 文字列を検索する
    文字列を検索する(Where Is)   文字列の検索は、部分一致と正規表現による検索が可能です。 検索の開始始点   現在カーソルのある位置から検索を行います。   もし、テキストの最後まで検索して文字が見つからない場合、   nanoはテキストの先頭から検索...
  • Ubuntuのバージョンと開発コードの対応表
    UbuntuのバージョンとUbuntuの開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • Ubuntu 22.04 LTSのインストール その5 - UEFI環境でパーティションの作成と構成 〜 ブートローダーのインストール先の選択
    UEFI環境でパーティションの作成と構成を行う UEFI環境でパーティションの作成と構成を行います。
記事のピックアップ
オプション