この記事を届けたい人
・Gitとかよくわからんけど、ちゃっちゃとチームでプロジェクト共有をしたい人
・Unity公式Collaborationの3人縛りで困ってる人
忙しい人のためのToDo
(チームリーダーのみここから始める)
⓪リモートリポジトリ用の新しいメールアカウント・パスワードを作る(※推奨)
①Atlassianでアカウント作成
②SourceTreeをインストールする
③Bitbucketで「リモート」リポジトリ作成。リポジトリURL入手
④SourceTreeで「新規リポジトリ」を「URLからクローン」し、「ローカル」リポジトリと「リモート」リポジトリをリンクさせる
⑤Unityで新規プロジェクトを立ち上げ、ローカルリポジトリ内に保存後、SourceTreeにてローカルリポジトリの更新部分をリモートリポジトリにコミット+プッシュする
⑥Bitbucketからリポジトリをメンバーと共有する
(メンバーはここから)
⑦届いたメールからリモートリポジトリにアクセスし、④の手順を行う
⑧Unityの立ち上げ画面から「ローカルリポジトリ」を開く
⑨プルでリモートリポジトリの最新バージョンをローカルへ→コミット+プッシュで自分の更新点をリモートリポジトリに上書きを繰り返し、共同制作を進める
⑩競合を処理する
以下、解説
⓪チーム専用メアド、パスワード
①Atlassianでアカウント作成
②SourceTreeをインストールする
さっそくすいません、手抜きさせてください。ええ感じに、どうぞ。
チーム専用メアド,パスワードが必要なのは、メンバーとプロジェクトを共有する⑥のステップで共有メンバーにパスワードが知られるからである。
一点だけ注意をば。
「Googleアカウント」による簡易ログインは使用しないこと。
詳細が気になる方はこちらのページを参考してください。一言でいえば、後々詰みます。
余談、というか、すぐ分かることでもありますが、BitbucketとSourceTreeはどちらもAtlassianが提供しています。
※「Googleでログインする」は禁止
③Bitbucketで「リモート」リポジトリ作成
PC上で編集した「ローカル」リポジトリを、クラウド上の「リモート」リポジトリと同期していくことで、複数人の共同作業が可能になる。ちなみに、リポジトリとは貯蔵庫のこと。
まず、「リモート」リポジトリから作りましょう。
ユーザー名は各自自由に決めて下さい。
リポジトリの作成を押すだけでリモートリポジトリ自体は完成します。
プロジェクトの名前をリポジトリ名にしよう。
READ ME を外すと、「リポジトリが空っぽだよ!」アラートがでるので含めておきましょう。邪魔にならないし。
この赤丸内のリンクを使えば、このリモートリポジトリとSourceTree内の「ローカル」リポジトリを繋げることができる。
④SourceTreeでローカルとリモートを繋げる
リモートリポジトリができたら、SourceTreeを立ち上げ、「新規リポジトリ」→「(リモートリポジトリの)URLから(ローカルリポジトリに)クローン」を選択。
ソースURLに先ほど取得したリモートリポジトリのURL(上段のgit cloneの部分は不要)をコピペしてEnterする。自動的に、保存先のパスと名前が入力される。保存先のパスは、右の「...」ボタンから好きなフォルダへ変更できる。フォルダを指定した後、「/KosentestLocal」と記述しましょう。これで、KosentestLocalというローカルリポジトリフォルダが作成されると同時に、このフォルダとBitbucket上のリモートリポジトリとが繋がります。
最後に、「Bitbucketのパスワード」を入力しましょう。SourceTreeのローカルタブ内に、先ほどBitbucketで作成したリポジトリが出現していれば成功です。
ちなみに、①②で軽く触れたGoogle簡易登録で進めていると、この「Bitbucketのパスワード」が正答できなくなり詰むかも。
⑤Unityの進捗をリモートリポジトリに同期する
リモートとローカルリポジトリの作成とリンクは済ませた。ここから、肝心のUnityでの作業の同期を行う。キーワードはプルとコミット+プッシュである。
SourceTreeの「ファイルステータス」タグを開くと、リモートリポジトリに同期すべきファイルが自動で列挙される。今はローカルリポジトリを作ったばかりなので、当然空っぽである。
Unityを立ち上げ、新しいプロジェクトを作る。このとき、赤枠で示しているUnityプロジェクトの保存箇所が、少し前の赤枠である「保存先のパス(ローカルリポジトリ)」のフォルダ内でなければならないことに注意する。リモートリポジトリとリンクが繋がっているのはローカルリポジトリでしかない。そのローカルリポジトリ内にUnityプロジェクトがあるから共有されるのだ。
Unityを上記の手順で立ち上げ、1度保存する。これで更新内容が確定し、SourceTreeに変化が起きる。
画面上部から「コミット」を選択しよう。
「作業ツリーのファイル」のチェックを入れると、コミットの準備が整う。コミット+プッシュとするために、「コミットを直ちにプッシュする」にもチェックを入れる。必要なコメントを残し、コミットボタンを押そう。ローカルリポジトリの内容が、リモートリポジトリを上書きする。
⑥Bitbucketからリポジトリを共有する
さて、ここまで作ってきたリモートリポジトリをチームメンバーと共有することが目標だった。
Bitbucketのリポジトリのページ右上のメニューから「リポジトリを共有する」を選択する。
メンバーをユーザー名や登録アドレスで検索し、追加していく。このとき、「読み取り」ではなく「管理」権限にすることを忘れないようにしましょう。
⑦メンバーがリモートリポジトリにアクセス
⑧Unityで「ローカルリポジトリ」を開く
(※この手順はメンバーのみ)
⑥を終えた時点で、各メンバーがAtlassianアカウント作成時に登録したメールアドレス宛にリモートリポジトリのリンクが送られます。④以降の手順を行いましょう。
⓪で述べたように、ここでメンバーがURLをクローンする段階で最初にリポジトリを作った人のパスワードが求められる場合があるので、プロジェクト専用メアド、パスワードの作成をオススメします。
ローカルリポジトリを作成できたら、左図のようにUnityの「Open」でローカルリポジトリを開く。
⑦プル→コミット+プッシュで共同制作
⑧競合を処理する
SourceTreeでの競合の解決方法はこちら様の記事にきれいにまとまっています。
[Git] SourceTreeで競合を解決する方法
https://qiita.com/ymiyamae/items/ad3ec3d7242ee4ea451a
そもそも競合をなるべく起こさない開発方法をとることも重要。プレイヤー担当、エネミー担当、UI担当などを明確に分け、それぞれの開発は各自開発用Sceneで行い、部品がそろった段階でメインプログラマが一人でMainSceneに組み込む、という手順にするだけでも競合はほとんど起きないか、起きても小さな問題で済みます。
補足
上記の方法は、超短期間・小規模ゲーム開発が最低限成り立つことを目標に超ざっくりとはしょって説明したものである。ブランチも切らないし。
例えば、下記のサイト様でも述べられているように、pullは使わない方が良いです。
むしろ、いかなる場合もfetchでよい。
少し余力があれば、是非参照されてください。
Git pullを使うべきでない3つの理由