UnityプロジェクトをGithubで管理しよう!

Unity
Image by Anja from Pixabay

バージョン管理しようと思います!

どうも、壁です

今更ながら自分のUnityプロジェクトを

GitHubでバージョン管理しようと思います。

なぜしようと思ったかというとPCの容量を圧迫してきたからです

自分のPCの容量がそこまで多くないのと

Unityのプロジェクトが意外と容量を食うので

SSDの容量がそろそろやヴぁいんですよね…

ということでプロジェクトのバージョン管理手順を以下に

まとめようと思います!

早速いきましょう!

GitHub?

GitHubとはバージョン管理ツールです

複数人で同じプロジェクトに対して作業を行う時に必要になってきます

一応以前以下で記事を作成しました↓

よければ見てください…ブログ初期に作成した記事で

自分で見返して内容うっすって思っており…見なくてもいいです 笑

バージョン管理は何を使うべきなのか今一度考えてみる

業務でGitHub使っているのでGitHubでええやろと

短絡的に考えてしまっていましたが、本当にそれでよいのか?

ということを今一度調査してみようと思います。

結果だけでいうとやっぱGitがいいみたいです

以下のUnityでのバージョン管理ツールに対する統計情報が見つかりまして

Choosing the best version control software for Unity in 2025
This article compares Git, Anchorpoint, Plastic SCM, SVN and Perforce. It will help you to find the best version control...

結果的にGitが一番使われているみたいです!

ということでまぁGitHubでいいんじゃね?ってことにします!

ソフトウェアはSourceTreeを使います!

GitHubも分からんのにSourceTreeってなんやねん!

という話になるかもですが

こちらはPCにインストールして使うソフトウェアです

GitHubはいわばプロジェクトファイルをクラウドに置いておく

サービスみたいなもんです(大雑把)

GitHub単体だけでも使えるのは使えるようですが

それだけだとコマンドを使いこなす必要があるんです

例えば初期のWindowsはコマンドだけで操作していました

それがWindows95あたりからUIで使えるようになり爆発的にヒットしました

それと同じでコマンドだけで使うのってめんどくさいから

UIで使えるようなソフトウェアがあるわけです

その中で業務で使っているのが「SourceTree」なので

それを使おうと思います!

Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

実際にやってみよう!概要

やることの概要は以下です
・リモートリポジトリの作成
・リモートリポジトリをローカルへクローン
・リモートリポジトリへプッシュ

リモートリポジトリの作成

こちら簡単です

GitHubにログインしてHomeから右上の+をクリックし

New repositoryをクリックします

すると作成するリモートリポジトリの設定画面が出てくるので

以下画像の通り設定しましょう!

Choose visibilityは必ずPrivateにしましょう!

PublicとPrivateが選べるのですがPublicにすると

インターネットに繋いでいる人が

誰でもこのリポジトリを参照できるようになってしまいます

これはもし有料のアセットを使っていた場合、それも公開してしまうことに

なるのでかなり問題になります!注意しましょう!

.gitignoreについてですが

ignoreは「無視する」という意味の英単語です

ローカルリポジトリの中でリモートリポジトリのコミット対象から

除外するファイルを指定してあげることができるのですが

Unity独自のファイルで無くても大丈夫なファイルを

リモートリポジトリにはコミットさせないようにする感じです

ここはしなくてもよいですが、した方がスッキリとします!

最後にCreate repositoryをクリックすると新規リポジトリが作成されます!

リモートリポジトリをローカルへクローン

まずクローンとは何かというと

リモートのプロジェクトをローカルにコピーすることです

ではsourceTreeを開いてクローンタブを押下すると以下のようになります

①にリモートリポジトリのURLを入力します

②にローカルに保存するフォルダを選択します

そうすると一番下のクローンが活性化されるので

押下するとクローンされます

②は任意の場所を指定すればよいのですが

①についてはGitHubの対象リポジトリのページを開いて
(以下の画像を参照してください)

Codeをクリック→HTTPSでURLが表示されている横の

コピーボタンをクリックしてURLをコピーして

その値を入力してください!

入力がOKなら下のクローンボタンが押下できるようになるので

クリックしてクローンを完了してください!

これでクローン完了です

実際にクローンしたフォルダ↓を見てみましょう!

当たり前ですがファイルはほとんどありません
.gitフォルダと.gitignoreファイルのみです

.gitフォルダはバージョン管理するための情報を格納するフォルダですね

.gitignoreはバージョン管理するファイルの中で除外するファイルの情報を

格納しておくファイルです。

「ファイル」という単語が多すぎて訳わかめですみません…

どんなプロジェクトでもバージョン管理には不要なファイルというのが

あります。

Unityでいうとプロジェクトを閉じて次に開いた時って

前回閉じる前に開いていたシーンが開いた状態になっていますよね

つまり前回プロジェクトを開いた時の情報を保持しているんです

これって別にバージョン管理としては不要なので、そういったものを

記憶しておくファイルたちを除外してあげるわけです

リモートリポジトリへプッシュ

クローンまで出来たので最後にリモートリポジトリへプッシュを行いましょう

リモートリポジトリへプッシュというのは

ローカルの情報をリモートリポジトリへコピーするようなイメージです

プッシュ→ローカルからリモートへ情報をコピー

プル→リモートからローカルへ情報をコピー

今クローンしたフォルダ内には何もないので

そこに作成したブロック崩しのUnityプロジェクトをコピーしてあげます

コピーが完了したらsourcetreeに戻ってみましょう

以下のように作業ツリーのファイルの欄にコピーしたファイルが出てきました

これを全てリモートにコピーしたいので「全てインデックスに追加」

を押下しましょう

すると全てのファイルが上の欄(Indexにステージしたファイル)に

移動しました

上の欄はリモートリポジトリにコピーする対象のファイルです

で、ファイルを移動したら下の「変更をすぐにorigin/mainにプッシュする」が

チェックできるようになります

チェックボックスの上の欄はコメントです

どういったファイルをリモートにコピーしたのかコメントしましょう

それが終わったらコミットを押下します

するとリモートへファイルのコピーを行われます

コミットが完了したらGitHubで対象のリモートリポジトリを

確認してみましょう↓

ローカルのファイルがリモートへコピーされました!

これで一通りの作業は完了になります!

この状態のリポジトリのプロジェクトをローカルにコピーしたい場合は

リモートリポジトリをローカルへクローン

の手順をもう一度行えばよいです!

SceneがUntitledになってしまう問題

上記まででリモートリポジトリにUnityプロジェクトをコミットしました

んで、その状態のリポジトリを再度ローカルにクローンして

Unityプロジェクトを開いてみたら以下のようになりました↓

Hierarchyウィンドでいつもシーンが開いている状態だったのが

Untitledとなっていて何もシーンが開いていない状態になりました

これはコミットがちゃんと出来ていないからか!?と

思ったのですが色々調べていったらこれはそういうものみたいです

なぜUntitledとなるのか?

プロジェクトを閉じてもう一度開いたときに最後に開いていた

シーンが出ているのはLibraryフォルダ内にある

LastSceneManagerSetup.txtにその情報が保存されていて

プロジェクトを開くときにそこから情報を読み込んでUnityエディタが

シーンを自動で開いてくれているからみたいです

ただLibraryフォルダは別に無くても問題ないので

GitHubではコミット対象として無視するのが一般的です

一般的に.gitignoreにLobraryフォルダを

コミット除外するように記載されています

なのでクローン後にUntitledとなるのは別に問題ないです

これ、知らなかったのでマジで何時間も調べて大変でした…

おわりに

とりあえずGitHubでプロジェクトをバージョン管理することに成功いたしました!

えがった、えがった!

タイトルとURLをコピーしました