Git LFS 関連
GitHub の制限
GitHub Enterprise Cloudを使用する前提で記述している
ファイルサイズ制限
この制限を超えるファイルを追跡するには、Git Large File Storage (Git LFS) を使う必要がある
ビルドで作成するようなファイルはReleaseに添付する[3]ことを検討した方が良い
リポジトリサイズの制限
理想としては 1GB 未満、および 5GB 未満にすることを強く推奨 [4]
推奨なので超えた場合も即座にリミットが掛かる訳ではなく、GitHub Support から是正措置を求めるメールが送られてくる模様
Git Large File Storage
この制限を超えるファイルを追跡するには、Git Large File Storage(Git LFS) を使用する
Git LFSは、リポジトリに実際のファイルではなく、ファイルへの参照を保存することで大きなファイルを扱います。Git のアーキテクチャを回避するため、Git LFS では実際のファイル (どこか別の場所に格納されています) への参照として働くポインター ファイルが作成されます。 GitHub Enterprise Cloudはこのポインタファイルをリポジトリ中で管理します。 リポジトリをクローンすると、GitHub Enterprise Cloudはこのポインタファイルを大きなファイルを見つけるための地図として使います。
仕組みはこのサイトの図が分かりやすい
- 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のストレージを提供する
翌月に持ち越せない
git lfs install
git lfs track "*.iso"
git lfs env
Git LFSをインストールしないとポインタファイルがダウンロードされる