はじめに
Unity のプロジェクトを GitHub で管理しようと思うと幾つかの課題にブチ当たります。 その課題と解決策についてノウハウが溜まってきたので記事に纏める次第。
課題と解決策
社外秘なコードが無料でホスティングできない
- 素直に Organization 買いましょう。
- Enterprise もあるよ。
巨大なファイル (100MB 以上) を管理できない
- そもそも、そんなサイズになるようなモノを管理しない方法を模索してもヨサソウ。
- 管理する場合は git lfs で。
- 既にリポジトリが存在している場合は、 lfs 化したファイルのコミット履歴は消えちゃうけどね。
- 履歴消さずに git lfs 化する方法ってあんのかなぁ…?
リポジトリサイズが 1GB を越える
- 今のところいきなり止められたりするコトはないけど、警告メールが来る。
- 個人的なオススメとしては、拡張子ベースでの git lfs 管理かな。
秘匿情報の管理ができない
- API キーとかの、漏れたら困る情報は Public は勿論のこと Private であってもリポジトリで管理しない方が安全。
- まぁ Private なら、最悪管理しても良いのかも知れませんが、望ましくはないですね。
- 万が一 Public になってしまったら全部 Revoke したりしないとなので。
- コレばかりは、今のところ完璧なソリューションを思い付かないので、プライベートな環境 (社内の NAS とか) で管理して個別にプロジェクトに取り込むとかしか無さそうですね。
- 設定ファイル的な ScriptableObject 作ってあげると Unity 上での取り回しは楽。
- 勿論 .gitignore してね。
- その手の設定ファイルを取得するスクリプト書いても良いかも。
- 2017/08/04 追記 コメント欄にて「GPG とか使って公開鍵で暗号化する手もあるよ!」って教えていただきました。確かにその手があった!
AssetStore で購入した有償アセットを含んでいる
- こちらも秘匿情報の件と同様、万が一 Public になってしまったらエラいことです。W@REZ *1 ダメ絶対。
- コチラについては、どちらかと言えば安全な方法を考えついているので、近々記事を書きます。
- まぁ、誤操作による Public 化のリスクは残る方法なので、銀の弾丸ではありませんが…。
移行が面倒くさい
- 既に GitLab とか使ってて、移行する際に上記の課題があるから二の足を踏んでいる的な。
- 私もそうでした。
- まぁ、こればっかりは頑張るしか無いかなぁ、って感じです。
- filter-branch 駆使して git 管理しないファイルを適切に除去したり。
- 可能な限り履歴を継承するために git clone –mirror して git push –all && git push –tags したり。
- 残っている Issue やら Pull-Request *2 やらは移行できないので、事前にやっつけたり手作業で移行したり。
そもそもメンバー全員が git を使いこなせるワケではない
- そんな貴チームは わかばちゃんと学ぶ Git使い方入門 を読みましょう!とてもオススメです!!