この記事の目的
- 「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です。