【Unity】GitHubでチーム開発をする方法

Programming

チーム開発に初めて挑戦して、GitHubを使い始めて一週間たったのでリポジトリの作成から使い方までのメモを残しておく。

前提

Unityでのゲーム開発を想定しています。

GitHub Desktopを使用しており、使用OSはwindows11です。

事前準備

必要なソフトのインストール

以下の3つを事前にインストールします。詳細は割愛。

  • Unity
  • Git
  • GitHub Desktop

一応、以下のページからそれぞれダウンロードできます。

Unity のリアルタイム開発プラットフォーム | 2D/3D、VR/AR エンジン
エンターテインメント、映像制作、自動車、建築などの分野のリアルタイム 3D ゲーム、アプリケーション、体験を制作し、成長させましょう。今すぐ Unity の使用を開始しましょう。
Git for Windows
We bring the awesome Git VCS to Windows
GitHub Desktopのインストール方法 - GitHub Docs
サポートされている Windows または macOS オペレーティングシステムに GitHub デスクトップをインストールできます。

GitHubのアカウントを作っておく

GitHubのアカウントがない場合は以下のページにアクセスし、アカウントを作る必要があります。

GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source commun...

GitHub Desktopを開きサインインしておく

GitHub Desktopの初回起動時にサインインを求められると思うので、画面の指示に従って、GitHubのアカウントでサインインしてください。

プロジェクトの作成

チーム内の代表者がGitHubのリポジトリを作成し、そこにUnityのプロジェクトを入れます。

リポジトリの作成

GitHubのアカウント作成後、以下のページに行くと、下の画像のような画面が表示されるので左上のNewから新規リポジトリを作成します。

GitHub: Let’s build from here
GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source commun...

すると、リポジトリの設定画面に移るので、必要項目を設定します。

  • Repository name

    リポジトリの名前を設定します。任意の名前をつけてください。

  • Private

    公開するかどうかを選択します。あとからでも変更できるのでとりあえずPrivateにしておきます。(Publicにする場合はプロジェクト内で使用してるアセットなどのライセンスに違反していないか注意が必要)

  • Add .gitignore

    ignoreファイルの設定。UnityのプロジェクトをGitHubで管理したい場合はUnityを選択する。

必要項目が設定できたら右下のCreate repositoryを押してリポジトリを作成します。

リポジトリを作成すると以下のような画面に飛びます。リポジトリが作成できており、.gitignoreファイルが作成されているのを確認できます。

リポジトリにチームメンバーを招待する

リポジトリができたら、チームメンバーをリポジトリします。個人開発の場合はこの手順は不要です。

公式に手順を公開しているので、そちらを参考にメンバーを招待してください。

コラボレーターを個人リポジトリに招待する - GitHub Docs
個人リポジトリに、ユーザーをコラボレーターとして追加できます。

GitHub Desktopに表示させる

まず、GitHub Desktopを開きます。サインインしていない場合はサインインしてください。

「File」→「Clone repository」の順で選択します。Githubのリポジトリが表示されるので先程作ったリポジトリを選択し、Clone を押します。

リポジトリのクローンが終わり、もとの画面に戻ったら完了です。

左上のリポジトリ名が選択したリポジトリになっていることを確認してください。

Unityプロジェクトの作成

Unity Hubで新規プロジェクトを作成します。その際、Locationを先程Github Desktopでクローンしてきたフォルダにします。

リポジトリのローカル上の位置は「Repository」→「Show in Explorer」から確認できます。

既存のプロジェクトをリポジトリに入れるには、プロジェクトの中身をすべてリポジトリのフォルダに移動させます。プロジェクトの・・・ から「Show in Explorer」を選択し、中身をすべて移動させます。移動したらプロジェクトを削除し、「Open」から移動したフォルダを開き、プロジェクトの移動完了です。

プロジェクトを作ると、GitHub Desktopに追加したファイルが表示されていると思います。

最初のコミット

左下のSummaryとDescriptionにコミット名と説明を記入し、Commit to mainを押します。

すると上にPush originが表示されるので押します。

ブラウザでGitHubのリポジトリを見ると、プロジェクトが追加されえているのがわかります。

ブランチとは

ここまでで準備はできましたが、実際に作業をする前にブランチについて理解する必要があります。ここで簡単にブランチについて解説します。ただ、あくまで自分の理解ですので、詳しい解説は以下のサイトなどを参考にしてください。

サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!

ブランチを使用する目的は、ざっくり言うと「データの上書き保存で消えることの回避」です。

ブランチを使用しないで複数人で同時に作業すると先にデータを保存したひとの編集内容があとからデータを保存した人の編集内容で上書きされてしまい消えてしまいます。

ブランチを使用するとデータの分岐を作り、編集内容は分岐先に保存されるようになります。また、編集内容を元データに合体させる際も他の人のデータを上書きする前に編集内容の衝突を知らせてくれて、その部分をどうするか確認してくれます。

これで、他の人の編集内容を上書きして消してしまうことなく複数人が同時に編集できます。

作業前にすること

分岐前のブランチを最新の状態にする

作業前にブランチを作成します。そのためにまずは分岐前のブランチを最新の状態にしておきます。最新の内容にするには上のFetch originを押します。更新内容があると表示がPull originに変わるので、もう一度押します。

ブランチの作成

Current branchを押すとブランチの一覧が表示されます。上のバーに名前を入力し、New branchを押して、現在のブランチから分岐したブランチを作成します。

作業後にすること

ブランチのコミット

最初のコミットと同様、左下にタイトルと説明を記入してコミットします。

コミットしたら上のPublish branchを押して、オンライン上にブランチを公開します。

公開すると、GitHubにCompare & pull requestボタンが表示されるので、そのボタンを押します。

Pull requestの設定画面が表示されるので、タイトルや説明を記入したら、Create pull request を押します。

編集内容に問題がなければ、Marge pull requestボタンが表示されるのでこれを押してマージします。もし、編集内容な衝突してマージできない場合は、 を確認してください。

ブランチがマージされ、ファイルが更新されます。

編集内容が衝突したら

プルリクエスト作成時に衝突することがあります。これはブランチ同士が同じファイルの同じ行を編集しており、このままマージすると、先にマージされた編集内容が上書きされてしまうことを意味します。

そのため、どちらのブランチの編集内容を適応するのかを選択してからマージする必要があります。

衝突した場合、プルリクエストを作ると、以下のような画面になるのでResolve conflicts を押します。

Resolve conflicts を押すと、衝突しているファイルの中身が表示されます。衝突している行が以下の画像のようにハイライトされて表示されます。

<<<<<<< exsample から======= までがexsampleブランチの内容。======= から>>>>>>> mainまでがmainブランチの内容なので、これをもとに適応したい内容に編集しましょう。

<<<<<<< exsample=======>>>>>>> main は削除しましょう。

編集したら、右上のMask as resolvedを押します。

全部のファイルを修正したら、右上にCommit marge が表示されるので、このボタンを押してマージします。

ボタンを押すと、プルリクエストの画面に戻ります。

衝突が解決できていれば、マージできるようになっているはずです。

その他

.gitignoreをあとから追加・編集する

あとからgitignoreを追加したり、デフォルトのgitignoreファイルの内容を変更したりした場合、gitignoreに設定していても、すでにリポジトリ上にあるファイルは無視されません。そのため一度、キャッシュを削除する必要があります。

GitHub Deskyopを開き、「Repository」→「Open in Command Prompt」でコマンドプロンプトを開きます。

コマンドプロンプトで以下のコマンドを実行し、キャッシュ消去します。

$ git rm -r --cached .

キャッシュ消去をすると無視されていなかったファイルが消えます。

参考

サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!
コラボレーターを個人リポジトリに招待する - GitHub Docs
個人リポジトリに、ユーザーをコラボレーターとして追加できます。
UnityをGitHubで共同開発するための快適な開発環境+Tips - Qiita
はじめにUnityプロジェクトを共同開発するときに、Unityならではの問題が多かったので、快適な共同開発のための開発環境の作り方と開発時のTipsをまとめました。ソースコードの管理はGitHu…
.gitignoreに記載したのに反映されない件 - Qiita
.gitignoreにファイルを指定することで、git上にアップしたくないファイルをアップせずに済みます。ローカルでのみ必要なファイルがある場合に非常に便利です。しかし、.gitignoreに記…
【超初心者向け】UnityをGitHubで共同管理したい!【ざっくりGUI】 - Qiita
今日やること今回の環境Unityを共同で管理するということそもそもGitやGithubって何?ざっくりGitHubの使い方(共同使用を前提に)リポジトリの作成.gitignoreを使って…
【Git】ブランチって何? - Qiita
はじめにGitを活用して開発を進めていく上で、ブランチ機能は欠かせません。ブランチ機能を活用することで、1つのプロジェクトを独立した環境で並行して進めて行くことが出来ます。また、ブランチの理解が深…