10分でマスター!UnityでGitを使う

Gitとは?

何か失敗をした時、「あの頃に戻りたい」そう思ったことは誰しもあるかと思います。
今日はそんな課題をすべて解決してくれるGit(ギット)について小学生にでもわかるように解説します。

「Unityでゲームを作っていたら急に動かなくなった!」
「あれ?これまで動いてたプログラムが動かなくなった」

そんなトラブルに何時間も使ってしまったり、精神的にダメージを受けた経験はありますよね?
Gitはテレビゲームのセーブ機能と似ていて、任意のセーブポイントに瞬時に戻ることが出来ます。

この記事を読みながらGitを覚えるのは10分です。
「Git?ふーん。まぁ今度でいいや!」という方は、今後また何十・何百時間も浪費したり、人前でUnityがクラッシュしてもすぐに戻せない..そしてビジネスでも信用を失うでしょう

10分かけてGitを習得する賢明なタイプの読者の方は、
次回トラブルが起きた時、Gitを開いて「完璧だった、あの頃に戻れ!」と呪文を唱えるだけで、完璧に動作していた頃に瞬時に巻き戻すことができます。

読むだけではなく、ぜひ実際にインストールを試してみてください。

事前準備

SourceTreeのインストール

SourceTree(ソースツリー)という、Gitを操作するためのアプリをインストールします。

まずは公式サイトからインストーラをダウンロードして実行します。
すると以下のようにログインを求められるので「既存のアカウントを使用」をクリックします。

次にこの画面で「Log in with Google」をクリック => グーグルのメールアドレスを入力すれば
Googleのメールアドレスが無い場合は「Sign up for an account」からATLASSIANアカウントを新規作成しましょう。

ログインが成功したら次は「アカウントと接続」画面になりますが、ここはスキップを選択して次へ進みます。

SSHキーを読み込みますか?と聞かれたら「No」を選択して次に進みます。

「Gitが見つかりませんでした」の画面が出た場合は、「システム全体ではなく、SouceTree単独で使うためだけの内蔵用のGitをダウンロードする」を選択します。

「Mercurialが見つかりませんでした」の画面では、「Mercurialを使いたくない」を選択します。

無事にSourceTreeのインストールが終わるかと思います。

Unityの設定

次にUnity側の設定を行います。

メニューバー > Edit > Project Setting > Editorをクリックします。

Editor Settingsが表示されるようになるので、下の図のように「Version Control > Model」のところで「Visible Meta Files」を選択します。

次に、そのすぐ下にある「Asset Serialization」の項目は、下の図のように「Force Text」を選択します。

Unityの設定は以上です。

除外ファイルの設定

まずはこちらからファイルをダウンロードしてどこか適当な場所(Unityプロジェクトフォルダの中だと将来プロジェクト削除したときに一緒に消えてしまうので、消えない適当な場所)に保存してください。

次に、このファイルをSourceTreeに取り込みます。
下の図のように、ツール > オプションをクリックします。

オプションウィンドウ > 「グローバル無視リスト」の右にある「…」ボタンから、
先ほど作成した「unity-git-ignore.txt」を選択して「OK」を押します。

以上で全ての準備は完了です。

Gitの使い方

それでは早速Gitを使ってみましょう。

リポジトリの作成

先ほどインストールしたSourceTreeを開いて、下の図のようにメニューの「Create」ボタンを押すとリポジトリの作成画面になります。
リポジトリ作成と聞くと難しそうですが、単純にGitで管理したいフォルダを指定するだけです。

Unityの場合、プロジェクトごとにフォルダがあってその下に各種ファイルが置かれていますよね?
とあるプロジェクトをUnityで編集中に「いつの間にか壊れてしまった!」場合、
プロジェクトフォルダ全体をセーブポイントまで巻き戻すことで元に戻ります。

つまり、Gitでいう「リポジトリ作成」とは「Git管理したいフォルダの指定」であり、
あなたは「Unityをプロジェクトごとに管理したい」と思っているので、
リポジトリにはUnityのプロジェクトフォルダを指定することになります。

プロジェクトが5つある場合は、リポジトリも別々に5つ作成します。

それでは改めて、下の図のようにメニューの「Create」ボタンを押してリポジトリの作成画面を出しましょう。

「参照」ボタンから、Gitで管理したいUnityプロジェクトのフォルダを指定します。
Unityのプロジェクトフォルダがわからない場合は、Unityのプロジェクト一覧画面を開くと「Path」と書いてあるところがあるので、そこで確認してください。

上から2番目の入力欄はUnityプロジェクトと同じ名前、3番目の入力欄では「Git」を指定します。

「次のアカウントでリポジトリを作成」のチェックはOFFのまま「作成」ボタンを押してください。
以下のように「出力先のエラー」ダイアログが出ますが、気にせず「Yes」を押して進みましょう。

リポジトリを作成すると、次のような画面になります。

セーブ(コミット)してみる

画面の左下に「作業ツリーのファイル」という窓があります。
そこにある「全てインデクスに追加」ボタンを押してみましょう。

するとファイル一覧が左上の「Indexにステージしたファイル」という窓に移動したかと思います。
この作業を「ステージングする」といい、Gitに対して「このファイル達を管理してね!」と指示をしたことになります。

次はいよいよ「セーブ作業」です。
Gitでは「セーブ」することを「コミット」と呼びます。

画面の一番下の入力欄に「コミットメッセージ」を入力し、「コミット」ボタンを押します。
「コミットメッセージ」は自分が管理しやすい、任意のメッセージを入力します。

今回は、私のUnityが以下のように青色の背景なので、
「青色の背景」というコミットメッセージにしました。

「コミット」ボタンを押せば、セーブが完了します。
コミット後は、以下の画面になります。これは「コミット待ちのファイルが1つも無い」クリーンな状態です。

左側のメニューの「ブランチ > master」をクリックしてみましょう。
これがこのリポジトリにおけるコミット履歴(=このプロジェクトにおけるセーブ履歴)です。

今度は赤色背景でコミットしてみる

今度は実験のためにUnityで作成中のゲームを赤色背景に変更してみます。

そしてSourceTreeに戻り、左側メニューの「ファイルステータス > 作業コピー」をクリックします。
先ほどコミット後に見たときは「コミット待ちのファイルがない状態」でしたが、
今度は左下の「作業ツリーのファイル」に1ファイルだけ表示されています。

これは赤色背景に変更したことでUnityによって変更された「.matファイル」です。
最後にコミットした後に変更が発生したということは、その変更差分は未セーブ(=つまりコミット待ち)である訳で、この画面はその状態を表しています。

これも先ほどの青色背景の時と同様に、ステージングおよびコミットを行ってみます。

左メニュー「ブランチ > master」をクリックすると、「青色背景」のコミット履歴(=セーブポイント)とは別に、「赤色背景」の履歴が増えているのが確認できます。

過去のセーブポイントに巻き戻す

それではここで、「青色の背景」を右クリック > 「チェックアウト」を実行してみます。
アラートダイアログが出ても無視してOKを押してください。

これで昔の(青色背景だった)セーブポイントに巻き戻したことになります。
この状態でUnityを確認すると、どうなるでしょう?

赤色背景に変更したはずのUnityが、見事に青色背景に戻っています。

これで晴れて貴方は、任意のセーブポイントを自由に行き来できる能力を手に入れました

Git管理は非常に重要

日頃の開発時から、うまくいったポイントで小まめにコミット(=セーブ)を行う癖をつけましょう。
そうすれば、その履歴までは簡単に巻き戻すことが可能になります。

予期せぬ操作で作っていたものが壊れてしまった!なんてことがあっても、
これでもう大丈夫!
神経をすり減らしたり、余計な時間をつかったりする昨日の自分とはグッバイです!

Gitで良いUnityライフを!