初めに
UnityをGit管理する際によく発生する問題としてあるのが、.Pngや.dllといったバイナリのデータが変更時に差分が取れずに丸ごとGitのログに乗ってしまい、リポジトリが肥大化するという問題です。
これを解決するために開発されたのがGitLFSですが、基本的にGitLFSは導入がめんどくさい、使い方がよくわからない人がいるなどの理由で小規模の開発時には設定されずに終わることがよくありました。
しかし、GitHubなどのサービスを利用する際に単一のファイルで100mb以上のファイルがプッシュできないといった制限のためにAssetStoreのアセットなどで100mb以上のファイルが含まれるものを使うときに非常に不便でした。
今回はSourceTreeに内蔵させれているGitLFSの機能を使ってみたら思った以上に簡単だったので紹介したいと思います。
やり方
GitLFSを使う流れは以下の通り。
- LFSに対応してないGitを使っている場合はGitを最新にする
- リポジトリのメニューからGitLFSを選択して、リポジトリを初期化する
- GitLFSの追跡/未追跡のファイルからLFSで管理したい拡張子を*.dllなどで設定する
- 通常通りにコミット、プッシュを行う
基本的にはこれだけで動かせました。
補足で説明をすると、GitLFSのリポジトリの初期化はすでに運用中のGitリポジトリでやっても問題なく初期化できます(データが消えるといったことはありません)
また、追跡/未追跡のファイルの追加はSourceTree上のファイルを右クリック>GitLFSのファイルを追跡でも追加することが可能です。
この時ファイルを直接指定するので勘違いしそうですが、拡張子が追加されるので特定のファイルのみがLFSに乗るといったことはありません。
参考