naichi's lab

3日後の自分(他人)への書き置き

【初心者向け】UnityプロジェクトにGitを導入しGitHubと連携する手順

はじめに

f:id:naichilab:20190114010820p:plain:w128

GitHubの価格が改定され、無料で非公開リポジトリが作れるようになりました。

Gitを使うとこんなことができます。

  • アセット入れたらおかしくなった! -> 戻せます。(簡単)
  • 昨日まで動いてたのに... -> 戻せます。(簡単)
  • 突然PCが壊れた!! -> 戻せます。(GitHubから別のPCに)(そこそこ簡単)
  • WinとMacで作業したい -> できます。(ちょっと難しい)
  • 複数人で共同開発したい -> できます。(ちょっと難しい)

もしフォルダをコピーしてバックアップしているのなら、Gitを覚えると全く違った体験が待っています。

一人でバックアップ代わり使う分にはそんなに難しくないので多くの人にぜひ使ってほしいと思います。

この記事ではUnityプロジェクトを作ってからGitの初期設定を行い、GitHubにアップロード(プッシュ)するところまでを画像付きで紹介します。

今日紹介する方法はあくまで一例ですが、ある程度の参考になれば幸いです。

環境

以下を想定しています。Windowsでも同じ感じでいけるはず。

  • Mac OS X
  • Unity 2018.3.0f2(Unityバージョンはなんでもいいです)
  • GitはコマンドラインではなくSourceTreeを使用
  • SourceTree 3.0.1

Git管理を始める手順

では早速やってみましょう。

ローカルにプロジェクトを作る

練習用にプロジェクトを作ります。

  • Unityで新規プロジェクトを作ります。
    • f:id:naichilab:20190113160030p:plain:w320
  • できました
    • f:id:naichilab:20190113161102p:plain:w320
  • 今日はGitの練習なのでもうUnityは閉じて大丈夫です。
  • Finder(Windowsの場合はエクスプローラ)をみてみると、下記のようなフォルダ構成ができています。
    • f:id:naichilab:20190113161320p:plain:w320

このプロジェクトをGitで管理できるようにし、GitHubへもアップロードします。

プロジェクトフォルダをローカルリポジトリにする

SourceTreeをお持ちでない場合は入れておいてください。

Gitを使うためのGUIツールは他にもForkGitKrackenとか色々ありますが、一番使われてそうな気がするSourceTreeで説明します。

  • SourceTreeを起動する

    • f:id:naichilab:20190113164104p:plain:w320
  • 新規 -> ローカルリポジトリを作成

    • f:id:naichilab:20190113162431p:plain:w320
  • プロジェクトフォルダを指定します。
    • f:id:naichilab:20190113162515p:plain:w320
    • リモートリポジトリは作成しない。でOK。
  • 一覧に追加されました。
    • f:id:naichilab:20190113162737p:plain:w320
    • 大きな数字(ここでは1870)が出てますがとりあえず無視してください。
  • 一覧からリポジトリ名をクリックすると詳細画面が開きます。
    • f:id:naichilab:20190113163047p:plain:w320
    • 以後この画面を操作します。

GitHubにリモートリポジトリを作成する

GitHubのアカウントをお持ちでない場合は作成しておいてください。

  • ブラウザでGitHubにログインし、右上の + から New repository を選びます。
    • f:id:naichilab:20190113163407p:plain:w320
  • リポジトリ名などを入力して作成します。
    • この時、 .gitignore のところで Unity を選択するようにしましょう。
    • f:id:naichilab:20190113163714p:plain:w320
  • 作成に成功すると、 https://github.com/[ユーザー名]/[プロジェクト名] のようなURLで下記ページが表示されます。
    • 作成時のオプションを選択していれば、すでに .gitignore というファイルが存在しているはずです。
    • f:id:naichilab:20190113164017p:plain:w320
  • この画面にある Clone or Download というボタンから、 https:// で始まるURLをコピーします。
    • f:id:naichilab:20190113164525p:plain:w320
    • コピーした文字列は次の手順で使います。

ローカルリポジトリとリモートリポジトリを接続する

先ほど作ったローカルリポジトリに、リモートリポジトリはここだよ。と教えてあげる設定をします。

  • SourceTreeに戻ります。
  • 右上にある設定を開き、リモートタブを選択します。
    • f:id:naichilab:20190113164330p:plain:w320
  • リモートタブの 追加 を開き、先ほどコピーしたURLを入力します。
    • リモートの名前は origin としましょう。(これは何でもいいのですが慣習的にoriginを使う場合が多いです)
    • f:id:naichilab:20190113164840p:plain:w320
  • リモートタブに追加されたことを確認します。
    • f:id:naichilab:20190113165021p:plain:w320

リモートリポジトリをダウンロード(クローン)して、 .gitignore ファイルをローカルに作る

.gitignore というファイルは、 どのファイルをgitから無視するか。 という設定ファイルです。
GitHubではリポジトリ作成時に選ぶだけで、Unity用の一般的な設定ファイルを作ってくれます。
このファイルはまだリモートリポジトリにしか存在しないので、ローカルに取り込みます。

  • 引き続きSourceTreeで操作します。
  • メニューにある プル を押します。
    • f:id:naichilab:20190113165232p:plain:w320
  • ダイアログが出てくるので、 プルするリモートのブランチで master を選択します。
    • 選択肢に出てこない場合は 更新 を押すと出てくると思います。
    • f:id:naichilab:20190113165347p:plain:w320
    • OKを押して閉じる。
  • プルしています〜 と表示されたのち、うまくいけばダイアログが閉じてリポジトリ詳細画面に戻ります。
    • f:id:naichilab:20190113165726p:plain:w320
  • ここまでうまくいっていれば、先ほど出ていた数字がかなり減っているかと思います。
    • .gitignore というファイルが作られ、管理しなくて良いフォルダ(LibraryとかTemp等)が管理対象外となったため数字が減りました)
    • f:id:naichilab:20190113165853p:plain:w320

コミットしよう

ここからやっとプロジェクトファイルをコミットしていきます。

  • 対象ファイルを選択 -> メッセージをいれて -> コミット
    • f:id:naichilab:20190113170308p:plain:w320
  • まっさらになって数字も消えました。コミット完了。
    • f:id:naichilab:20190113175505p:plain:w320
  • ちゃんと履歴としては存在しています。
    • f:id:naichilab:20190113175631p:plain:w320

プッシュしよう

  • SourceTreeで履歴画面をみると、 origin/master から上方向に master が伸びています
    • f:id:naichilab:20190113175835p:plain:w320
    • origin/master はGitHubの状態
    • master はローカルの状態
    • これは origin/master に対して、 master の方が1コミット進んだ状態を表しています。
  • この状態だと、進んだ分をGitHubにアップロード(プッシュ)することができます。
    • (もし origin/mastermaster が枝分かれしてるような形の場合はプッシュできません)
  • プッシュ を選択 -> master にチェックを入れ -> OK
    • f:id:naichilab:20190113180133p:plain:w320
  • 成功すれば origin/mastermaster が横並びになります。
    • f:id:naichilab:20190113180358p:plain:w320
  • GitHubをリロードするとファイルが入っています。
    • f:id:naichilab:20190113184259p:plain:w320

準備完了

おつかれさまでした。

これでUnityのプロジェクトファイル一式をGit管理下におき、さらにGitHubへプッシュ(アップロード)することができました。

私はこの手順を、Unityプロジェクトを作ったら毎回行なっています。

これ以降は、キリのいいタイミング(1つの機能が完成したとか、1日の終わりに、とかいつでもいいです)でコミット&プッシュをしていくだけです。

こうしておくと、何かあってもGitの機能で古い時点のファイルに戻せますし、GitHubにアップロードしてあるので突然PCが壊れてもプロジェクトは守られます。

機能追加する前にコミットする癖をつければ、何かあっても必ずそこまでは戻せるので心理的な安心感が違います。

今回はGitの使い方詳細については触れませんでしたので、書籍やネットの記事を参考にしてください。

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

ぜひGitを使いこなして快適なUnityライフをお過ごしください〜。