100MBを超えるフォントデータをGit管理するためにGithub LFSの設定をした。
その際、画像や3DデータなどもLFS管理するようにしたが、以下の問題点もあり脱LFSする。
- Github LFSの無料枠はアカウントに対して1GBまでのため複数プロジェクトで使うのはまず無理
- 3Dモデルの更新をするたび30MBくらいのプロジェクトデータがLFSに乗りすぐに限界を迎える
- そもそもフォントデータ自体そこまで重要なファイルではないのでgitignoreしていい
- LFS上のファイルの個別削除は行えず、容量を減らすにはリモートリポジトリ自体を削除する必要がある
100MB超えるファイルは以下のような手順でgit管理から外す
- 予めリポジトリまるごとバックアップ取っておく
- git filter-repoでリポジトリの履歴から100MBのファイルを消して
git filter-repo -f --invert-paths --path "path/to/100MBfile"
- gitignoreして
- プロジェクトの動作に問題がないことを確認して
- リモートリポジトリ削除して
- Push
100MB超えないファイルはLFS管理から外すだけ
git lfs ls-file
で対象ファイル確認
・リストを矩形選択してVSCodeに貼り付けて3のコマンドを一括変換して作るgit lfs untrack "*"
で全ての追跡パターンを指定git rm --cached "path/to/file1" "path/to/file2"
でファイルを管理対象から一旦除外git lfs uninstall
でGit LFS管理対象から外すgit lfs ls-file
で何も出力されない事を確認- (Github LFSのファイル削除するなら)リモートリポジトリ削除して
git add & git commit & push
反省点
Git LFSのデメリットを踏まえた上で導入を検討すべきだった
その他
無料枠の1GBのままPushを続けてたらいつのまにか限界突破してた図
(これ以上Pushしようとすると batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.
と怒られる)