はじめに
今回はTextMeshPro対応したフォントをPushしようとしたら、Gitの10MB以上はPushできない制限に引っ掛かってしまった時の対応策を紹介する記事です。
Unityでモデルや画像をgitのリモートリポジトリにPushなどを使用すると以下のようになることがあります。
この時の対応策を紹介していこうと思います。
そもそもこのエラーの意味は?
このエラーはいわゆる該当のコミットが100MB以上だったため、Pushなどが出来なかったことが原因です。
もともとGtiはコードを保存する目的で運用されているので、大きなバイナリーデータなどを扱うようにできてないようです。
LFS(LargeFileStorage)を使う
今回の問題を解決する機能です。リモートリポジトリに直接ファイルを上げるのではなく、別々に保管しておくことでリポジトリのサイズを抑えます(リポジトリは、ファイルの保存先を保持・操作することで実現しているみたいです)。
*事前にGitをインストールしておいてください。
GithubDesctop
1. GithubDesctop=>Repository=>Open in Command promptでコマンドプロンプトを起動
2. コマンドプロンプトに git lfs install と入力して、lfsを使えるようにします
3. git lfs track * 拡張子 と入力して、100MB以上のファイルを登録します
4. 登録すると .gitattributes が追加されるので、リモートに反映させます
5. 登録後に100MB以上のリモートに持っていきたいファイルをコミット・プッシュすれば完了です!
SourceTree
1. リポジトリ=>Git LFS=>リポジトリの初期化を選択
2. リポジトリ=>Git LFS->追跡/未追跡のファイル から追加したいファイルの拡張子を追加
3. 登録すると .gitattributes が追加されるので、リモートに反映
5. 登録後に100MB以上のリモートに持っていきたいファイルをコミット・プッシュすれば完了です!
ちなみにLFSは月ごとに使用できる制限があります(ここから自身が使用しているリソースを確認できます)。
そもそも容量が大きいファイルをリモートに置かない
元も子もないですが、そもそも大きいファイルを置かなければ良いわけです。なんだかんだでこれが安全かもしれません(以前ファイルが消し飛んだことがありましたし...)。しかもLFSは容量制限があり、無課金であればストレージ容量は1GB、転送量1GB/月なので、なんだかんだで使い切ってしまうと思います。案としては、サーバーやDropBoxで管理するのか良いと思います。
おわりに
今回はGitに100MB以上のファイルを上げる方法の一部を紹介しました。
是非、読者登録をしていただくと助かります!