Unityをgitで管理する
Unityプロジェクトをgitで管理する方法をまとめました。
目次
git連携
これまではXcodeなりPyCharmなりIDE側で管理するか、CUIでコマンド叩いていました。
gitでUnityプロジェクトを管理するベストプラクティスを探します。
GithubとSourceTree使って管理することにしました。
一応、以下の感じで比較しました。
SourceTreeなどのデスクトップアプリ
SourceTreeは以前Windowsを使っていた時に利用したことがあります。GUIで使いやすい。
気になるのは、仮想デスクトップ1つあたりに1つのアプリを割り当てて作業していること。
Slack、Chrome、Unity、VS。プラスアルファでメモ帳など。できればあんま増やしたくない。
CUI
コマンドプロンプト触りたくない。却下。
linuxとコマンドが違ったり(lsコマンドとdirコマンドとか)、
パワーシェルで少し良くなったようですが。
rm -rf
使えなかったし、一々突っかかるのも面倒。
Unity Cloud Build
”超便利”らしいが、無料だと一時間に一回しかビルドできないらしいので却下。
プラグイン
Unity内でgit管理できるプラグインないかなと調べてみましたが、なさげ。
あったらいいのに。
Githubにリポジトリ作成
実はずっとリポジトリ自体はあって、タスク管理とWikiだけ使っていました。
ローカルにクローンします。
SourceTreeインストール
以下のページからインストーラをダウンロードします。
- Atlassian | SourceTree
インストーラーを起動します。ポチポチ進めます。
Atlassianアカウントでのログインを求められます。あればログイン、なければ作ります。
リモートリポジトリの置き場所を選択します。
今回はGithub。
Bitbucketは無料でもPrivateリポジトリ作れるのが魅力です。
学生登録すればGithubでもPrivate作れるので僕は基本Githubを使っています。使い勝手自体はそれほど変わらない印象。
続行を押すとブラウザが開き、Github連携の許可を求めてきます。
問題なければ下の方の「Authorize Atlassian」をクリックします。
インストーラーに戻ると頑張ってダウンロードしています。
gitignoreのことでしょう。
exeファイルなどのバイナリファイルはgitで取り扱うには向かないらしいです。
dllファイル無視していいのか?と思ったので「いいえ」を選択。
クローンするリポジトリを選んで、保存先のパスも用意します。
とりあえずここではスキップ。
リモートと接続
Remoteを選ぶと連携しているアカウントのリポジトリが出てきます。
ここでお目当てのリポジトリの「clone」を選択。
保存場所を選び、「クローン」。
選択したローカルのファイルがgitの管理下に置かれました。
このフォルダの中にUnityプロジェクトを作成します。
.gitignoreを作成(コピー)
Unityプロジェクトに限らず、バイナリファイルをgitで扱うのは好ましくありません。
うっかりコミットしようものなら、リポジトリが肥大化。一々クローンに時間がかかります。
さてUnityプロジェクトの.gitignoreってどうすればいいのかですが、
Unity一般なら以下の記事、
- Qiita | Unity向け .gitignoreの設定について
特にHoloLensアプリなら以下の記事が参考になるかと思います。
僕はMRDesignLabsの.gitignoreを拝借しました。
まぁ間違いないでしょう。
- Github | MRDesignLabs_Unity/.gitignore
コピーして自分のフォルダに突っ込みます。
Unityプロジェクト作成
Unityで新規プロジェクト作成すると、こんな感じのフォルダ構造になります。
(「Swampdog_unity」がUnityプロジェクト)
pushする
SourceTreeに戻ると「作業ツリーのファイル」に新しく追加したファイルが表示されています。
余談
細かいことは省きますが、add -> commit -> pushでリモートに変更を伝えます。
ここら辺のそもそものgit知識はいずれまとめたいと思います。
それか以下のサイトが大変勉強になります。
エンジニア以外のデザイナーさんとかもこれぐらいは把握しているとお仕事がスムーズになるかも。
(ちなみにサルでもわかるらしいが僕は数回読み直して理解しました)
余談終わり。
本題に戻って「全てインデックスに追加」。これで準備状態。
下のコメント欄みたいなとこにメッセージを書いて(画像では「unity_first_commit」)、
「変更をすぐにorigin/masterにプッシュする」はご希望でチェックを入れます。
楽をとるか安全をとるかだと思います。うっかりへんなのpushしてしまうことはよくあります。
「コミット」を押します。
すぐにプッシュを選択しなかった場合は、右上の「プッシュ」を選択してウィンドウを開きます。
「プッシュ」をクリック。
Githubで確認
before
after
以降もUnityプロジェクトを更新したらいい塩梅の頻度でpushします。
バージョン管理大事。
参考
- 週刊SleepNel新聞 | SourceTreeを使ってUnityプロジェクトをgitで管理してみよう!
- naichi’s lab | 【Unity】Unity Cloud Build無料プランでiOS、Androidアプリのビルドを自動化する
- naichilab | 【連載Git入門 第6回】SourceTreeでGitを始めよう!UnityのプロジェクトをGitで管理しよう
- 煙と消えるその前に | .git/objectsについて少し調べてみた