(この記事の使用環境: Unity 2018.1.0b7 Personal、Visual Studio Community 2017, Windows10

前置き

世の中にはもうずいぶん前から Git(ギット) というものがあって、プログラムやその他のファイルのバージョン管理にたいそう便利で、今やプログラマーだけでなくデザイナーや物書きの人など多くの人が利用しているらしい、というのはなんとなく耳にしていたのですが、自分としては「英語だし、コマンドベースだと覚えるのが面倒そう、自分はバージョン管理に困ってないし」などなどと、やらない理由を見つけては導入を先送りしていました。

(中略)まあ、なんだかんだで Git を使ってみようかなと思い立ったわけですが、学習するのにあたってとりあえず以下のことをポイントとして考えていました。

覚える苦労は最小にしたい(面倒だと途中で投げ出すから)
・簡単に使いたい。いちいちマニュアルを見ながらやりたくない(面倒だと使わなくなるから)
・覚えたら普段から使うようにしたい(忘れるから)← Unityプロジェクトの管理に使う
とりあえずは外部に公開する目的ではなく、自分のための管理用として導入する

ということで、これらを踏まえつつ学習し導入してみました。結果的にはすべて満たせました。

使ってみるとすごく便利です。もう導入以前の時代には戻れないかもしれん。
というわけで前置きが長くなりましたが、そろそろ本題に入ります。

Gitを苦労せずに覚える

【更新】
2018年4月までは「わかばちゃんと学ぶ Git使い方入門」の1~11話がWeb上で無料公開されていたのですが、掲載場所の  CodeIQ Magazine がサービス終了してしまったようです。残念。。。

まったく新しいものを覚えるのにいきなり背伸びすると失敗しそうなので、できるだけお手軽そうな資料を探した結果、みつけたのがこのWebマンガです。

現在1話から11話まで公開されていて、Gitの入門編という感じですが、まずはこれを読むだけで十分利用開始できる内容だと思います。いいぞこれ。これからGitの利用を検討している人にはおすすめです。

内容を拡充した書籍版・Kindle版もあるようです。


SourceTreeを導入する

上述のマンガでは Git をコマンドではなくGUIベースで利用できる SourceTree というツールの導入方法が紹介されています。

マンガの手順に沿って、簡単に導入できます。(SourceTreeのバージョンアップのため、マンガと一部メニューの並びなどが異なっている箇所がありますが、なんとかなります)

一度マンガに沿ってひととおり操作をなぞっておくといいでしょう。

とりあえずローカルのみで使ってみる

SourceTreeを導入することで、外部サイト(リモートリポジトリ)との連携は必須ではなく、とりあえずは自分のPC内だけでもファイルのバージョン管理ができるようになります。これだけですごく便利です。

マンガではリモートリポジトリである GitHub との連携まで説明されています。自分も試してみましたが、GitHubでは無料ユーザーは誰でもアクセスできる公開リポジトリしか利用できないようなので、現時点では自作のデータを管理するのには使用していません。
Bitbucket には非公開のプライベートリポジトリが作成可能なようなので、こちらはあとで使ってみたいかも。

SourceTreeをUnityプロジェクトの管理に使うための設定

SourceTreeはさっそくUnityプロジェクトのファイルバージョン管理に使っています。
事前にUnityエディタ側とSourceTree側でそれぞれ設定が必要です。

安全のために

安全のため、SourceTreeの操作をするときはUnityエディタは終了させておくのが良いという情報もあります。

自分は誤操作をしないよう、(環境設定後も常に)以下の運用にしています。
・SourceTreeの操作をするときはUnityエディタは終了させておく
・Unityエディタを操作するときはSourceTreeは終了させておく

つまりSourceTreeとUnityエディタ、両方同時には起動させないということです。

[Unityエディタ] Editor Settings を編集する

まずはUnityエディタで管理対象のプロジェクトを開いたら「Edit」>「Project Settings」>「Editor」から Editor Settings を開き、以下の設定をします。
Version Control Mode Visible Meta Files に変更する
Asset SerializationMode Force Text に変更する

参考: 3分でわかる!Unityで作成したゲームをGitでバージョン管理する方法 | FREE SWORDER

あとはSourceTree側の設定です。

[SourceTree] プロジェクトフォルダをローカルリポジトリに指定する

こんな感じで、Unityのプロジェクトフォルダを対象としてローカルリポジトリを作ります。ローカルリポジトリの作成方法は前述のマンガ参照。

png


[SourceTree] バージョン管理不要な対象を無視する(初回コミット前に!)

初回のコミットをする前に、バージョン管理不要な対象については無視する設定をしておくのが良いようです。これを設定しておくことで対象を大幅に減らすことができます。

SourceTreeの「設定」>「詳細」から、「リポジトリ固有の無視リスト」を編集します。

png-001

テキストエディタで、無視する対象を記入します。
GitHubにUnity用無視リストのテンプレート的なものがあるので、それを参考にするのが良さそうです。

上記をベースにして、プロジェクトごとに無視したい対象を追記して使っています。
こんな感じ。


# で始まるのはコメント行です。最後のコメント行から始まるブロックを追記しています。
  • 上記の例はUnity公式の Space Shooter チュートリアル の学習と改変をしていたプロジェクトの無視リストなので、チュートリアル用のアセットをインポートした際に作られる「Assets/_Complete-Game/」や「Assets/TutorialInfo/」といったフォルダ以下はまるごと無視するようにしています。
  • また、その他アセットストアからインポートしたアセットについてもUnityエディタ上で「ImportAssets」フォルダに格納するようにして、それらをまるごと無視するよう設定しています。

SourceTree画面イメージ

SourceTreeの画面はこんな感じです。Unityプロジェクトの管理をしているときのものです。

スクリーンショット (99)

各コミット時に追加/削除/変更されたファイルが分かります。スクリプトなどのテキストファイルに関してはファイル内の編集箇所も分かります。コミット時にコメントを残しておけば、どういう作業を行ったのかを思い出す手助けになります。


まだSourceTreeを使い始めたばかりなので、これから便利な使い方を覚えたりしたらまた記事にしたいと思います。

今回は以上です。