こんにちは、やまだたいし( https://twitter.com/OrotiYamatano )です。
今回は完全に自分用の備忘録的な記事です。
毎回参考にしているサイトさんがあるのですが、忘れてしまうのでリンクを張っておくためだけの記事といっても過言じゃないです。
目次
GithubでLfsを使いたい
いくら備忘録であってもただネットの海に転がしておくのもあれなので、
この備忘記事の経緯だけでも書いておきます。
GitLFSとは
ゲームリソースをバージョン管理する場合、多くの場合gitを使うことが少なくないと思います。
しかし、純粋なgitではバイナリ管理がうまくありません。
というのも基本textベースでの管理を主軸においているのでリポジトリが肥大化しすぎてしまったり、
クローンに時間がかかりすぎてしまったりデメリット満載です。
LFSとはLarge File Storageの略で大きなファイルやバイナリファイルを効率的に管理するために作られたGitの拡張機能です。通常のGitでは、バイナリファイルの変更があるたびにファイル全体が保存されてしまい、リポジトリがどんどん大きくなりますが、LFSを使うことでその問題を解決できます。
LFSでは、実際の大きなファイルはリポジトリ内に保存されず、代わりにそのファイルへのポインタ(目印)だけがGitに保存されます。これにより、リポジトリのサイズを抑え、クローンやプル、プッシュなどの操作が高速化されます。
例えば、ゲーム開発で使用する画像やサウンド、3DモデルなどのリソースをLFSで管理すれば、Gitでのバージョン管理の恩恵を受けながら、ファイルのサイズ問題に悩まされることなく開発が進められます。
Githubで使いたい
Gitはさまざまな用途で使われているGithubで使いたいですが、
GithubでGitLFSを使おうとすると無料分は全リポジトリで1GBだけです。
課金すれば使えますが
ストレージの追加:1GBあたり月額$5
帯域の追加:50GBあたり月額$5
と管理するリソースが多くなるほどかなりの料金がかかります。
そこでコードの管理はGitで行いつつ、
リソースの実態は大規模ストレージサーバーを使うとかなり安くで済む!
という算段です。
ちなみに私は結構考えなしにぶち込んで海外のs3使って毎月8円くらい払ってます。
しかしながら自分でLFSサーバーを作るのは結構手間です。
そこでローカルで簡単にDocker(ローカルサーバー)を立ち上げ、
やってしまえるリポジトリの説明があるページを今回備忘録として貼っておきます。
今回紹介するのはawsのs3をストレージサーバーにするものです。
リンク
ついでに
Unityでgitlfsを使うなら、gitAttributeはこれを参考にすると良いよ
.gitattributes for Unity3D with git-lfs · GitHub
まとめ
他のホスティングサービスも結構検討しましたが、
結局ここに落ち着きました。
やっぱり、githubしか勝たん!!!
以上です。