この記事の目的
- 「Gitって何」というレベルの人が、とりあえずGitを使ってUnityプロジェクトをローカルでバックアップできるようになる
- 想定としては非プログラマ(デザイナーとか、VRChatユーザとか)
- 想定ユーザは1人だけで、チーム開発ではない
- ここでいう「バックアップ」は次のことができる
- 今のUnityプロジェクトの状態を保存できる
- 操作をミスってぶっ壊したときに、直前のプロジェクトの状態に戻せる
- PC自体がぶっ壊れた!みたいな状況には対応していません(後述するサーバ保存などを併用しましょう)
- Gitの「むずかしい」機能は使わない
- ブランチ操作などはしない
-
GitHub for Unityって名前のプラグインだけど、別に「GitHub」は使わなくても大丈夫です
今回使うもの
- GitHub for Unity
用語集
| 用語 | 意味 |
|---|---|
| Git | ファイルの差分管理をするもの(バックアップをとるツール) |
| GitHub | GitでとったバックアップをサーバにアップロードできるWebサービスの名前 |
| コミット | 「今この瞬間」の状態を保存すること(プロジェクトの一部だけをコミットすることも可能) |
インストール手順
1. GitHub for Unityをダウンロードする
こちらからGitHub for Unityのunitypackageをダウンロードしてください。
(アセットストアから導入しても可)
2. バックアップしたいUnityプロジェクトにアセットを追加する
バックアップしたいUnityプロジェクトをUnityで開き、さきほどのunitypackageを追加してください。
導入が完了すると、メニューのWindow -> GitHubの項目が追加されています。
(自動的に .gitignoreが生成され、git LFSも有効化される)
3. 初期設定をする
Window -> GitHubから、GitHub for Unityのウィンドウを開きます。
初回起動時は裏でインストールが実行されるため、ちょっと待たされる場合があります。

ウィンドウが開けたら、Settingを選び、NameとEmail欄を設定してください。
適当な名前とメールアドレスでもOKです(プロジェクトをpublicに公開するなら、ちゃんとしたものを入力しておいた方がいい)。

4. プロジェクトをGit管理下に置く
Initializeのタブを開き、Initialize a git repository for this projectのボタンを押します。

このボタンを押すとUnityプロジェクトに対してGitの初期設定が実行され、このプロジェクトでGitが使えるようになります。
5. 現状の状態で1回まずバックアップをとる
インストールした直後の状態で、まず1度バックアップを取ります。
(ちなみにGitの場合はバックアップを取る作業のことを「コミット」すると呼びます)
changesのタブを開き、すぐその下のAllを押します。
すべてのファイルにチェックが付いたことを確認してから、下の方のCommit summaryとCommit descriptionを入力してください。
-
Commit summary: このコミットにつける名前 -
Commit description: このコミットでやった作業の詳細
summaryとdescriptionは適当でも構いませんが、あとからバックアップを見直す時に困るのである程度分かるように入力しておくことを推奨します。
すべて入力できたら、右下の Commit to [master] を押します。
正しくコミットできたら、Historyタブにこのコミットが追加されています。
導入は以上です。
使い方
現在のプロジェクトの状態でバックアップをとる
GitHub for Unityを導入した状態でプロジェクトを操作すると、Projectビューにマークが付きます。
これは、「このファイルはまだコミットされていない」という意味になります。
つまり「バックアップしていないファイルだよ」という表示になります。
バックアップを取る場合はさきほどと同じく次の操作を行います。
-
changesタブを開く - 上の方にある
Refreshボタンを押す - このコミットへ含めたいファイルにチェックを入れる
-
summaryとdescriptionを入力する Commit to [master]
正しくコミットできたら、Historyタブにコミットが追加されています。
コミットの頻度はどうしたらいいか
「区切りがいいタイミング」でコミットする(バックアップする)とよいでしょう。
たとえば「新しいアセットを追加した」「Prefabの設定値を変更した」など。
「今日1日分の作業をまるごとコミットする」でも構いませんが、巻き戻した時に大量のファイルが戻ってしまいます。
適切な粒度でコミットするようにしましょう。
直前のバックアップへ巻き戻す
間違えてファイルを消してしまったり、設定値がおかしくなってしまった場合に、直前のコミットの状態に戻すことができます。
-
changesタブを開く - 巻き戻したいファイル/フォルダを右クリックして、
discardを選ぶ

discardすると削除したファイルは復活し、変更したファイルの設定は元に戻ります。
注意点として、discardで巻き戻した設定をまた元に戻すことはできません。
保存したかったファイルを間違えてdiscardしてしまうと取り返しがつかないので、かなり注意する必要があります。
おまけ:前回のバックアップをなかったことにしたい
バックアップしたはいいものの、ミスってたため「前回のバックアップ」をまるごとなかったことにしたい場合。
GitHub for Unityからは、「バックアップの操作を打ち消す」という操作ができます。
-
Historyタブを開く - なかったことにしたいコミットの履歴を右クリック
-
Revertを押す
Revertすると、「そのコミットの逆の操作」をしたコミットが生成されます。
これによって前回のバックアップを擬似的になかったことにできます。

(新しいファイルを追加したのなら、それを消す変更を追加することでプラスマイナスゼロにする)
まとめ
GitHub for Unityを使えば、とりあえず「バックアップする」「壊れた時に直前の状態に戻す」ということができるようになります。
ただし、GitHub for Unityは必要最低限の操作しかできません。
なので、次のような複雑な操作は実行できません。
- 特定のコミットの状態に完全に戻したい
- 複数人で同時にプロジェクト編集したい
- 変更を残したままコミットだけなかったことにしたい
- 現在の状態を保持したまま、別の作業を並行して行いたい
これらの操作がしたくなった場合は、 Git for Windowsを導入した上で、他のGUIツールを使ってみるとよいでしょう。
(SourceTreeやGitHub Desktopなど。余力があるならコマンドラインでGit操作できるとなおよい。)
おまけ:サーバにバックアップを保存する
GitHub for Unityで保存したバックアップファイルは、プロジェクトのあるフォルダと同じ場所に保存されます。
そのため「パソコンが壊れて起動しなくなった!」という状況には対応できません。
そこで、「バックアップしたファイル」をオンラインサーバ(GitHub)に保存する方法を紹介します。
容量制限に注意
なおGitHubは無課金の場合、1GBまでしかサーバに保存できません。
また通信量も規制の対象になり、一ヶ月あたりに1GBまでしか通信できません。
(プロジェクト単位ではなくユーザ単位での制限なので大量のプロジェクトをアップロードするとすぐに達してしまう)
もし制限を超えた場合はアップロードができなくなる点に注意してください(勝手に課金されたりはしません)。
そのため大きなプロジェクトをGitHubにアップロードする際は注意が必要です。
ちなみに、月$5でこの容量を50GBまで増やすことができます。

(容量を増やす場合は、ユーザ設定のBilling -> Git LFS Data -> Edit -> Add more data pack)
アップロード方法
1. GitHubアカウントを作る
GitHubにアクセスし、新しいアカウントを作ります。
2. Unity上でサインインする
GitHub for Unityのウィンドウの右上にあるSign inを押してGitHubにサインインします。

3. リモートリポジトリを作る
GitHub for Unityのウィンドウの左上の、Publishボタンを押します。

すると新しくリモートリポジトリを作る画面が出てくるので、名前などをつけてリモートリポジトリを作ります。
Make repository privateにチェックをいれると、自分だけがアクセスできるリモートリポジトリになります。
第三者に見られてはまずいものや、有料のアセット等再配布禁止なものが含まれている場合は必ずチェックをいれてください。

(チェックをつけると非公開にリポジトリになる)
リモートリポジトリができると、現在のプロジェクトの状態が自動でアップロードされます。
アップロード状況はブラウザからGitHubを開くことで確認できます。

4. 定期的にサーバにアップロードする
リモートリポジトリの設定ができると、GitHub for Unityのウィンドウの左上のボタンが変わります。
-
Fetch: サーバの状態をダウンロードする(反映はしない) -
Pull: サーバの状態をダウンロードして、プロジェクトに反映する -
Push: ローカルの状態をアップロードする
コミットが終わったらPushするようにするとよいでしょう。
アップロードしたプロジェクトファイルのダウンロード方法
たとえば「別のPCで作業をしたい」等となった時はサーバにアップロードしてあるプロジェクトファイルをダウンロードしてくる必要があります。
GitHubのダウンロードボタンは使えません
GitHubにはアップロードしたファイルをZipでダウンロードするボタンがあります。
ここからZipファイルをダウンロードして解凍すれば保存したプロジェクトファイルが入手できます。
が、ダウンロードボタンからプロジェクトファイルをダウンロードした場合、音声や画像データが読み込めない状態になります。
これは特定の拡張子のファイルはGitHubの別のサーバに保存されているからです。(Git LFSという機能が使われている。)
アップロードに失敗しているわけではないので安心してください。正しい方法でダウンロードすればちゃんと復元できます。
どうしたらいいの
一番簡単な方法はGitHub Desktopを使うことです。
1.ダウンロードしてインストールする
2. GitHubにサインインする
起動したらFile -> Option -> AccountsからGitHubにサインインしてください。
3. アップロードしたファイルをダウンロードする
File -> Clone repository... を押す。
ダウンロードしたいリポジトリを選び、保存先を選んでCloneを押す。

Git LFSを初期化しますか?と聞かれたらInitialize Git LFSを押す。

これで正しく画像や音声データを含んだ状態でプロジェクトがダウンロードできました。
4. Unityで開く
あとは普通にUnityで開けばOKです。












