チーム開発に初めて挑戦して、GitHubを使い始めて一週間たったのでリポジトリの作成から使い方までのメモを残しておく。
前提
Unityでのゲーム開発を想定しています。
GitHub Desktopを使用しており、使用OSはwindows11です。
事前準備
必要なソフトのインストール
以下の3つを事前にインストールします。詳細は割愛。
- Unity
- Git
- GitHub Desktop
一応、以下のページからそれぞれダウンロードできます。
GitHubのアカウントを作っておく
GitHubのアカウントがない場合は以下のページにアクセスし、アカウントを作る必要があります。
GitHub Desktopを開きサインインしておく
GitHub Desktopの初回起動時にサインインを求められると思うので、画面の指示に従って、GitHubのアカウントでサインインしてください。
プロジェクトの作成
チーム内の代表者がGitHubのリポジトリを作成し、そこにUnityのプロジェクトを入れます。
リポジトリの作成
GitHubのアカウント作成後、以下のページに行くと、下の画像のような画面が表示されるので左上のNew
から新規リポジトリを作成します。
すると、リポジトリの設定画面に移るので、必要項目を設定します。
- Repository name
リポジトリの名前を設定します。任意の名前をつけてください。
- Private
公開するかどうかを選択します。あとからでも変更できるのでとりあえずPrivateにしておきます。(Publicにする場合はプロジェクト内で使用してるアセットなどのライセンスに違反していないか注意が必要)
- Add .gitignore
ignoreファイルの設定。UnityのプロジェクトをGitHubで管理したい場合はUnityを選択する。
必要項目が設定できたら右下のCreate repository
を押してリポジトリを作成します。
リポジトリを作成すると以下のような画面に飛びます。リポジトリが作成できており、.gitignoreファイルが作成されているのを確認できます。
リポジトリにチームメンバーを招待する
リポジトリができたら、チームメンバーをリポジトリします。個人開発の場合はこの手順は不要です。
公式に手順を公開しているので、そちらを参考にメンバーを招待してください。
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のリポジトリを見ると、プロジェクトが追加されえているのがわかります。
ブランチとは
ここまでで準備はできましたが、実際に作業をする前にブランチについて理解する必要があります。ここで簡単にブランチについて解説します。ただ、あくまで自分の理解ですので、詳しい解説は以下のサイトなどを参考にしてください。
ブランチを使用する目的は、ざっくり言うと「データの上書き保存で消えることの回避」です。
ブランチを使用しないで複数人で同時に作業すると先にデータを保存したひとの編集内容があとからデータを保存した人の編集内容で上書きされてしまい消えてしまいます。
ブランチを使用するとデータの分岐を作り、編集内容は分岐先に保存されるようになります。また、編集内容を元データに合体させる際も他の人のデータを上書きする前に編集内容の衝突を知らせてくれて、その部分をどうするか確認してくれます。
これで、他の人の編集内容を上書きして消してしまうことなく複数人が同時に編集できます。
作業前にすること
分岐前のブランチを最新の状態にする
作業前にブランチを作成します。そのためにまずは分岐前のブランチを最新の状態にしておきます。最新の内容にするには上の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 .
キャッシュ消去をすると無視されていなかったファイルが消えます。