ホーム コンピュータ Git リポジトリのクローンサイズ推定 作成日: 2026年7月20日 21:33 Git リポジトリのクローンサイズ推定 入力 ワーキングツリーサイズ100 MBコミット数1,0001コミットあたりの平均変更量50 KBパック圧縮率30 % コンピュータ Git リポジトリのクローンサイズ推定 ワーキングツリーサイズ・コミット数・1コミットあたりの平均変更量・パック圧縮率から git リポジトリのフルクローンサイズを概算します。 入力 リポジトリのパラメータ ワーキングツリーサイズ MB HEAD 時点で追跡対象となっている全ファイルの合計サイズ。.git ディレクトリは含みません。git ls-files | xargs stat -c %s などで取得できます。 コミット数 ≥ 1 リポジトリ全体の総コミット数。git rev-list --count HEAD で確認できます。 1コミットあたりの平均変更量 KB 1コミットが圧縮前に追加または変更するデータ量の目安。テキスト中心のリポジトリでは 10〜100 kB、バイナリアセットを多く含む場合は 1 MB を超えることもあります。 パック圧縮率 % 0 – 100 % デルタ符号化と zlib 圧縮を経たあと、生のデルタデータのうち実際にパックファイル上に残る割合。コード中心のリポジトリでは 20〜40 % 程度、バイナリアセットでは 80〜100 % 近くになることがあります。 結果 値を入力すると計算結果が表示されます。 サイズ推定値 推定フルクローンサイズ MB ワーキングツリー (100 MB) とパックヒストリ (...) の合計。git clone で転送されるおおよその容量に相当します。 推定ヒストリサイズ MB .git/objects のパックファイルの推定サイズ: 1,000 コミット × 1コミットあたり 50 KB、パック効率 30 %。 共有 レポートを印刷 リセット 埋め込み この計算機を埋め込む プレビュー このコードをページに貼り付けると計算機を表示できます。 コードをコピー この計算を共有 このリンクを開くと、入力した値がそのまま表示されます。 リンクをコピー 共有する XFacebookLINE メール 最終更新: 2026-06-29 Git リポジトリのクローンサイズ git のフルクローンサイズとは、git clone を実行したときに転送されるデータの総量です。ワーキングツリー(最新スナップショット)と、.git/objects に格納されたオブジェクトヒストリの両方を含みます。CI/CD パイプラインのビルド時間やオンプレミスのストレージ計画に大きく影響するため、事前に概算しておく意義があります。 推定モデルと計算式 git はコミット間の差分をデルタ符号化し、まとめて zlib 圧縮したパックファイルに格納します。ここで採用するヒューリスティックモデルは次のとおりです。 H=N×C×rH = N \times C \times rH=N×C×r T=W+HT = W + HT=W+H NN はリポジトリの総コミット数、CC は圧縮前の 1 コミットあたり平均変更量、rr はパック圧縮率(0〜1 の実数)、WW はワーキングツリーサイズ、HH が推定ヒストリサイズ、TT が推定フルクローンサイズです。 計算例: コミット数 2,000 件、1コミットあたりの平均変更量 30 kB、圧縮率 30%、ワーキングツリー 150 MB のリポジトリを想定します。 H=2,000×30 kB×0.30=18,000 kB=17.6 MBH = 2{,}000 \times 30\,\text{kB} \times 0.30 = 18{,}000\,\text{kB} = 17.6\,\text{MB}H=2,000×30kB×0.30=18,000kB=17.6MB T=150 MB+17.6 MB=167.6 MBT = 150\,\text{MB} + 17.6\,\text{MB} = 167.6\,\text{MB}T=150MB+17.6MB=167.6MB フルクローンの転送量は約 168 MB と見積もられます。 各パラメータの調べ方 パラメータを実際のリポジトリから計測するには、以下のコマンドが参考になります。 ワーキングツリーサイズ: du -sh . --exclude=.git でディレクトリ全体のサイズを確認します。 コミット数: git rev-list --count HEAD で総コミット数を取得します。 1コミットあたりの平均変更量: git log --stat の出力からおおまかな傾向を把握できます。より精確に集計したい場合は git log --numstat を利用したスクリプトが便利です。 パック圧縮率: git count-objects -vH を実行し、size-pack と size の比率から逆算できます。コードリポジトリでは 20〜40%、バイナリファイルを多く含む場合は 80〜100% 近くになります。 ヒストリサイズが大きくなる仕組み git は追記型のデータ構造を採用しており、コミットするたびに差分オブジェクトが積み重なります。ファイルを頻繁に編集するほどオブジェクト数が増え、パックファイルのサイズも大きくなります。長命なリポジトリでは、ヒストリが最新スナップショットを数倍上回ることも珍しくありません。 git repack -a -d による再パックや git gc による不要オブジェクトの削除を定期的に実施することで、パックファイルの断片化を抑え、実際のオンディスクサイズを削減できます。 シャロークローンによる転送量の削減 CI パイプラインやデプロイスクリプトで完全な履歴が不要な場合、シャロークローンを使うと転送量を大幅に減らせます。 git clone --depth 1 <url> --depth 1 は先端スナップショットのみを取得するため、ダウンロード量はワーキングツリーサイズにわずかなオブジェクトを加えた程度に収まります。コミット数が多い古いリポジトリでは、フルクローンと比べて転送量が 90% 以上削減されることもあります。 シャロークローンでは git log の参照範囲が制限されます。後から完全な履歴が必要になった場合は git fetch --unshallow で補完できます。 モデルの限界 このモデルは、全コミットのデルタサイズと圧縮率が一様であると仮定したヒューリスティックです。実際のサイズは次の要因によって変わります。 デルタチェーンの深さや参照先オブジェクトの分布 大容量バイナリファイルの有無(画像・動画・機械学習モデルなど) git lfs(Git Large File Storage)の使用有無 core.compression や pack.compression などの git 設定 正確なオンディスクサイズを確認するには git count-objects -vH を実行してください。 関連する計算 パックファイルや転送後のサイズ削減率を評価するには、圧縮率の計算 の計算を参照してください。ネットワーク経由でのクローン所要時間を概算するには、データ転送時間の計算 の計算を利用してください。 よくある質問 (FAQ).git ディレクトリがワーキングツリーより大きくなることがあるのはなぜですか?git はすべてのファイルのすべての歴史的なバージョンをオブジェクトとして保持しています。あるファイルが 200 回編集されていれば、200 個のオブジェクトエントリが存在します。長期にわたって多くの貢献者が関わったリポジトリでは、累積したヒストリが最新のスナップショットをはるかに上回ることがあります。git のパック圧縮によってある程度は抑えられますが、ブランチの整理やシャロークローンを使わない限り、ヒストリとワーキングツリーのサイズ比は単調に増加していく傾向があります。 シャロークローンはダウンロードサイズをどのように削減しますか?シャロークローン (git clone --depth N) は直近 N コミットのヒストリのみをダウンロードし、残りはサーバー側に残します。たとえばコミット数が 10,000 件のリポジトリで --depth 1 を指定すると、先端スナップショットのみを取得するため、ダウンロード量はワーキングツリーサイズとわずかなオブジェクト層の合計程度に収まります。古いリポジトリではクローンの転送量を 90% 以上削減できることもありますが、ローカルには完全な履歴が残りません。後から git fetch --unshallow で履歴を補完することも可能です。 免責事項 これは簡略化されたパックファイルモデルによるヒューリスティックな推定値です。実際のリポジトリサイズはオブジェクトの種類・デルタチェーンの深さ・repack の設定・git のバージョンによって異なります。正確なディスク上のサイズは git count-objects -vH で確認してください。 次のおすすめ 圧縮率の計算 圧縮前後のファイルサイズを入力して、圧縮率・節約容量の割合・節約バイト数を求めます。ファイル形式や圧縮アルゴリズムを問わず利用できます。 詳しく解説データ転送時間の計算 データ量・回線速度・プロトコルオーバーヘッドから、実際のデータ転送にかかる時間を見積もります。カタログ上の回線速度と実効スループットのギャップを考慮します。 詳しく解説Base64エンコードのオーバーヘッド バイナリデータのサイズを入力して、Base64エンコード後の出力サイズとオーバーヘッドを求めます。 詳しく解説 200+ ツール · 10 言語対応 · 完全無料 データ・エンコードの他の計算 2の補数変換Base64エンコードのオーバーヘッドCRCチェックサムGit リポジトリのクローンサイズ推定IEEE 754 浮動小数点ビット表現QRコードの収容文字数 +18 more Show less Unixタイムスタンプ変換(エポック ⇄ 日時)UTF-8バイト数計算ツールオーディオファイルサイズ計算カラーコードの変換スループット (bps) 換算データ転送時間の計算テキスト → 2進数 / 16進数 / ASCII 変換ナイキストサンプリングレート計算ツールブルームフィルタ サイズ計算メガピクセル・印刷サイズ計算メモリアドレスビット計算圧縮率の計算画素密度(PPI・DPI)の計算画像ファイルサイズの計算色深度・ビット/ピクセルの計算動画ビットレートとファイルサイズ配信帯域幅の計算浮動小数点精度の計算 コンピュータの他のカテゴリ ネットワーク 1秒あたりパケット数(pps)の計算CIDRとサブネットマスクの変換IPv4 アドレス表現の変換IPv6サブネットの計算IPアドレス範囲の計算IPスーパーネットの計算MTU から MSS の計算TCP スループットの計算サブネットの計算レイテンシバジェットの計算帯域幅遅延積(BDP)の計算セキュリティ・暗号 chmodパーミッションの計算UUID 衝突確率の計算パスワードのエントロピーハッシュ衝突確率の計算アルゴリズム Luhn チェックディジットの計算シャノンエントロピーの計算ハミング距離の計算ビッグO記法の増加率レーベンシュタイン距離の計算信頼性・ストレージ APIレート制限の計算cron式デコーダー・次回実行時刻の計算MTBF・MTTR・稼働率 計算ツールRAID容量の計算クラウドストレージ料金の計算ハミング符号 ECCビット数計算ツール稼働率SLAの計算複合可用性の計算性能・待ち行列 Apdex スコアの計算CPU実行時間 計算ツールIOPS とスループットの変換M/M/1 待ち行列の計算M/M/c 待ち行列計算ツールアーランC 要員数計算アムダールの法則の計算キャッシュヒット率と実効アクセス時間(AMAT)の計算グスタフソンの法則の計算バッテリー駆動時間の計算ツールリトルの法則の計算平均メモリアクセス時間(AMAT)の計算 この計算機は役に立ちましたか? 役に立った 改善が必要 改善が必要 どのような点が改善されると良いですか? フィードバックを送信 Powered by OneCalc ↗
最終更新: 2026-06-29 Git リポジトリのクローンサイズ git のフルクローンサイズとは、git clone を実行したときに転送されるデータの総量です。ワーキングツリー(最新スナップショット)と、.git/objects に格納されたオブジェクトヒストリの両方を含みます。CI/CD パイプラインのビルド時間やオンプレミスのストレージ計画に大きく影響するため、事前に概算しておく意義があります。 推定モデルと計算式 git はコミット間の差分をデルタ符号化し、まとめて zlib 圧縮したパックファイルに格納します。ここで採用するヒューリスティックモデルは次のとおりです。 H=N×C×rH = N \times C \times rH=N×C×r T=W+HT = W + HT=W+H NN はリポジトリの総コミット数、CC は圧縮前の 1 コミットあたり平均変更量、rr はパック圧縮率(0〜1 の実数)、WW はワーキングツリーサイズ、HH が推定ヒストリサイズ、TT が推定フルクローンサイズです。 計算例: コミット数 2,000 件、1コミットあたりの平均変更量 30 kB、圧縮率 30%、ワーキングツリー 150 MB のリポジトリを想定します。 H=2,000×30 kB×0.30=18,000 kB=17.6 MBH = 2{,}000 \times 30\,\text{kB} \times 0.30 = 18{,}000\,\text{kB} = 17.6\,\text{MB}H=2,000×30kB×0.30=18,000kB=17.6MB T=150 MB+17.6 MB=167.6 MBT = 150\,\text{MB} + 17.6\,\text{MB} = 167.6\,\text{MB}T=150MB+17.6MB=167.6MB フルクローンの転送量は約 168 MB と見積もられます。 各パラメータの調べ方 パラメータを実際のリポジトリから計測するには、以下のコマンドが参考になります。 ワーキングツリーサイズ: du -sh . --exclude=.git でディレクトリ全体のサイズを確認します。 コミット数: git rev-list --count HEAD で総コミット数を取得します。 1コミットあたりの平均変更量: git log --stat の出力からおおまかな傾向を把握できます。より精確に集計したい場合は git log --numstat を利用したスクリプトが便利です。 パック圧縮率: git count-objects -vH を実行し、size-pack と size の比率から逆算できます。コードリポジトリでは 20〜40%、バイナリファイルを多く含む場合は 80〜100% 近くになります。 ヒストリサイズが大きくなる仕組み git は追記型のデータ構造を採用しており、コミットするたびに差分オブジェクトが積み重なります。ファイルを頻繁に編集するほどオブジェクト数が増え、パックファイルのサイズも大きくなります。長命なリポジトリでは、ヒストリが最新スナップショットを数倍上回ることも珍しくありません。 git repack -a -d による再パックや git gc による不要オブジェクトの削除を定期的に実施することで、パックファイルの断片化を抑え、実際のオンディスクサイズを削減できます。 シャロークローンによる転送量の削減 CI パイプラインやデプロイスクリプトで完全な履歴が不要な場合、シャロークローンを使うと転送量を大幅に減らせます。 git clone --depth 1 <url> --depth 1 は先端スナップショットのみを取得するため、ダウンロード量はワーキングツリーサイズにわずかなオブジェクトを加えた程度に収まります。コミット数が多い古いリポジトリでは、フルクローンと比べて転送量が 90% 以上削減されることもあります。 シャロークローンでは git log の参照範囲が制限されます。後から完全な履歴が必要になった場合は git fetch --unshallow で補完できます。 モデルの限界 このモデルは、全コミットのデルタサイズと圧縮率が一様であると仮定したヒューリスティックです。実際のサイズは次の要因によって変わります。 デルタチェーンの深さや参照先オブジェクトの分布 大容量バイナリファイルの有無(画像・動画・機械学習モデルなど) git lfs(Git Large File Storage)の使用有無 core.compression や pack.compression などの git 設定 正確なオンディスクサイズを確認するには git count-objects -vH を実行してください。 関連する計算 パックファイルや転送後のサイズ削減率を評価するには、圧縮率の計算 の計算を参照してください。ネットワーク経由でのクローン所要時間を概算するには、データ転送時間の計算 の計算を利用してください。 よくある質問 (FAQ).git ディレクトリがワーキングツリーより大きくなることがあるのはなぜですか?git はすべてのファイルのすべての歴史的なバージョンをオブジェクトとして保持しています。あるファイルが 200 回編集されていれば、200 個のオブジェクトエントリが存在します。長期にわたって多くの貢献者が関わったリポジトリでは、累積したヒストリが最新のスナップショットをはるかに上回ることがあります。git のパック圧縮によってある程度は抑えられますが、ブランチの整理やシャロークローンを使わない限り、ヒストリとワーキングツリーのサイズ比は単調に増加していく傾向があります。 シャロークローンはダウンロードサイズをどのように削減しますか?シャロークローン (git clone --depth N) は直近 N コミットのヒストリのみをダウンロードし、残りはサーバー側に残します。たとえばコミット数が 10,000 件のリポジトリで --depth 1 を指定すると、先端スナップショットのみを取得するため、ダウンロード量はワーキングツリーサイズとわずかなオブジェクト層の合計程度に収まります。古いリポジトリではクローンの転送量を 90% 以上削減できることもありますが、ローカルには完全な履歴が残りません。後から git fetch --unshallow で履歴を補完することも可能です。 免責事項 これは簡略化されたパックファイルモデルによるヒューリスティックな推定値です。実際のリポジトリサイズはオブジェクトの種類・デルタチェーンの深さ・repack の設定・git のバージョンによって異なります。正確なディスク上のサイズは git count-objects -vH で確認してください。