Open3

Git LFS 関連

eichisandeneichisanden

GitHub の制限

GitHub Enterprise Cloudを使用する前提で記述している

ファイルサイズ制限

100 MiB まで [1][2]

この制限を超えるファイルを追跡するには、Git Large File Storage (Git LFS) を使う必要がある

ビルドで作成するようなファイルはReleaseに添付する[3]ことを検討した方が良い

リポジトリサイズの制限

理想としては 1GB 未満、および 5GB 未満にすることを強く推奨 [4]

推奨なので超えた場合も即座にリミットが掛かる訳ではなく、GitHub Support から是正措置を求めるメールが送られてくる模様

脚注
  1. 50MiBより大きいファイルは警告表示 ↩︎

  2. ブラウザーからリポジトリにファイルを追加する場合、 25 MiB 以下 ↩︎

  3. リリース内のバイナリファイルの合計サイズや、それらの配布に使用される帯域は制限されません。 ただし、個々のファイルは2 GiB未満でなければなりません ↩︎

  4. github.com: リポジトリ サイズの制限 ↩︎

eichisandeneichisanden

Git Large File Storage

この制限を超えるファイルを追跡するには、Git Large File Storage(Git LFS) を使用する

Git LFSは、リポジトリに実際のファイルではなく、ファイルへの参照を保存することで大きなファイルを扱います。Git のアーキテクチャを回避するため、Git LFS では実際のファイル (どこか別の場所に格納されています) への参照として働くポインター ファイルが作成されます。 GitHub Enterprise Cloudはこのポインタファイルをリポジトリ中で管理します。 リポジトリをクローンすると、GitHub Enterprise Cloudはこのポインタファイルを大きなファイルを見つけるための地図として使います。

仕組みはこのサイトの図が分かりやすい
https://www.ricksoft.jp/blog/articles/000578.html

  • github.comのポインタファイルのサンプル
    • ハッシュ値とファイルサイズだけが記録されている
version https://git-lfs.github.com/spec/v1
oid sha256:4cac19622fc3ada9c0fdeadb33f88f367b541f38b89102a3f1261ac81fd5bcb5
size 84977953

GitHubでのファイルのサイズ制限

  • 5GB

ストレージと帯域の制限

Freeアカウントでも1GBのストレージ、1GBの帯域制限が無料で与えられている
リポジトリのオーナーに対して利用枠にカウントされる

ストレージ

ファイルを追加・更新するとそのファイルのサイズ分だけカウントされる(帯域はノーカウント)
500MBのファイルを追加し、その後で同じサイズで更新したら1GBとカウントされる

帯域

ダウンロードしたファイルのサイズがカウントさる(アップロードはノーカウント)
500MBのファイルが2回ダウンロードされたら1GBとカウントされる

ストレージと帯域の追加データパック

1 つのデータパックのコストは 5 ドル/月で、一ヶ月の容量として 50 GiBの帯域と 50 GiBのストレージを提供する
翌月に持ち越せない

eichisandeneichisanden

git lfs install
git lfs track "*.iso"
git lfs env

Git LFSをインストールしないとポインタファイルがダウンロードされる