# UnityとSourceTreeを連携しよう!(個人開発編) UnityとSourceTreeを連携させて家でも外でもどこでも開発できちゃう神みたいな環境を整えていきます。多分やりはじめは感動してコミットしまくると思いますがあながち間違ってなかったりします。(コミットの貯めすぎは、バグの温床になりかねないことと、それまでの作業がたったひとつの変更履歴としてのこってしまい、仮に致命的なバグが発見されたときに、その間の作業すべてをやり直すはめになるため。)
# 環境
* SourceTreeがインストール済みのPC,Mac
* 私の環境ではUnity 2018.4.14f1(バージョンはなんでもいい。プロジェクトのバージョンにあったものをインストール。共同開発の場合は、確実にバージョンを合わせること)
* UnityHub(最近はインストール必須な気がするから、Unity入れてたらこれも入ってるはず)
# (手順1)GitHubにリモートリポジトリを作成 まずは、Githubに作業状況をクラウド上に保存するためのリポジトリを作成しましょう。 ここで作成したリポジトリ(リモートリポジトリ)を介して、作業データの更新、自分のPCへの反映などができるようになります。 Githubのサイトを開いた状態で、右上のアイコンから`Your repositories`を選択すると自分のリポジトリ一覧が表示されます。そうしたら、右上の`New`ボタンを選択しましょう。すると、Create a new repositoryと促されるページに移動します。ここでリポジトリの作成の際の設定をします。
* Owner:基本的に変更はしない
* Repository name:わかりやすい名前にしましょう。ここでは、ShareTestとしておきます。
* Description:リポジトリの説明を書けます。なくてもok
* Public or Private :これは、作成するリポジトリを第三者が自由に閲覧可能な状態にするかどうかの設定です。個人情報などがなく、見られてもいいものであるならば`Public`でも構いません。(というか見に来る人いないけどね)。逆に、見られて困るものや、外部に知られたくない場合は、`Private`にしましょう。ただし、`Private`に設定した場合、共同作業をする際に、一緒に開発できる人数に制限がかかります。また、後からこの設定は変えられるので、ひとまずは`Public`で作業していきましょう)
* Intialize this repository with a README :そのまんまです。マークダウン形式でREADMEを添付することができます。他人がリポジトリを覗いた際に表示されるので、誰かに使用してもらう目的でリポジトリを公開する場合はあった方がいいです。
* Add .gitgnore Unityプロジェクトの管理を行う場合、ここの設定が大事です。ボタンをクリックするとプルダウンメニューが表示されるので、Unityで検索をかけて`Unity`を選択します。ここで`.gitgnore`にUnityを指定することで、Unity側の基本設定ファイルなど、管理する必要がないファイルを、バージョン管理から除外するためのリストファイルを生成してくれます。
* Add a license :説明略(個人開発で利用する分には必要ない)
設定が完了したら`Create repository`をクリックして、リポジトリを作成しましょう!上手くできたら↓の画像のように表示されると思います。
# (手順2)Unityプロジェクトの作成 適当にUnityプロジェクトを作成します。UnityHubを起動して、`新規作成`から、今回はテンプレートを`3D`,プロジェクト名を`SharePractice`にします。 保存先は、各個人の好きな場所にしてください。ここの保存先は後々必要なので分かりやすいとこにしておくかメモを取っておきましょう。 無事にUnityのプロジェクトが立ち上がったら完了です!
# (手順3)SourceTreeを使ってローカルリポジトリを作成 ローカルリポジトリというのは、自分専用のセーブデータと思って頂くのが一番わかりやすいと思います。自分が実際に作業を行っていくのは、このローカルリポジトリになります。ローカルリポジトリ上でのソースコードの変更などは、あくまでも自分のローカルファイルのみに影響を及ぼすので、仮に重大なバグが発生してもリモートリポジトリや、他の作業者には影響を与えません。個人開発の場合は、作業の分担ではなく作業の継続に意味があるので、バグがあってもPushしちゃっていいと思います。 本題に入ります。まずSourceTreeを立ち上げてください。 立ち上げが完了したら、画面上の`Create`を選択します。Create a repositoryと促されるので、`保存先のパス`にさきほど作成したUnityのプロジェクトのパスを指定します。 パスの設定ができたら、他の設定はいじらずに`作成`を押します。このとき、出力先ディレクトリのエラーと表示される場合は、`はい`を選択して作業を続行します。 すると、ローカルリポジトリが作成(厳密にはUnityのプロジェクトフォルダをローカルリポジトリに指定)され、管理画面が表示されると思います。 しかし、いまの状態では、ローカルリポジトリはあるものの親元となるリモートリポジトリがいないため、画面右上の`リモート`の部分に警告マークが表示されているはずです。
# (手順4)リモートリポジトリをSourceTreeに登録する あと少しで、快適ライフへの道が完成します。
## Githubでの作業 まずは、Github上で,先ほど作成したリポジトリのページまでいきます。画面右に`Clone or download`があるので選択し、でてきたメニューが`Clone with HTTPS`になっていることを確認し、表示されているURLをコピーします。
## SourceTreeでの作業 さきほど作成したローカルリポジトリを開き、右上の`設定`→`追加`を選択。 上記画像のようなポップアップがでるはずです。ここで、
* リモート名:`origin`に設定(慣習的にそうなってる)
* URL/パス:ここに先ほどコピーしたURLを貼り付け
そうしたら、`ok`→`ok`と進みます。 お疲れ様です!!これで基本的な作業は終了です!!! ここまで長かった…。あとは、リモートリポジトリにある`.gitgnore`をローカルに反映させるために`プル`を選択してください。このとき、`プルするリモートブランチ`が空白になっているはずなので、`更新`を押して出てきた`master`を選択しましょう。選択できたらLet's pull!!
# コミットしてみる 設定が終わったので、まずは変更をローカルリポジトリに保存する`コミット`をやってみましょう。 画像下半分あたりにある、作業ツリーのファイルという一覧があると思います。ここに表示されているものは、最新のローカルリポジトリのデータから変更された者たちとなります。いまローカルにはなにも保存されていないため、Unityの基本設定ファイルを除いた、他すべてのファイルが変更点としてこここに羅列されています。これをローカルに保存したいので、作業ツリーのファイルの右にある`全てインデックスに追加`を選択しましょう。こうすることで、変更点が`Indexにステージしたファイル`というところに移動します。(画像上部) ここに移動されたものが、コミット(ローカルへの保存)の対象となります。画面下部のテキストボックスに、変更点の説明(個人開発なので自分がわかりやすい説明で)をちゃちゃっと書いたらコミットを選択してローカルに変更点を保存しちゃいましょう! これでコミット完了です!!実際に、外部の環境で引き続き作業を行うためには、この後さらにプッシュを行う必要があるため、コミットだけして終了!なんてことがないようにしましょう!
# 忘れずプッシュしよう! さぁ、ここまで来たらあとはリモートに変更点をプッシュするだけです!(コミットはローカルへの保存。プッシュはローカルの保存データをリモートにも反映させる処理) 引き続きSourceTreeで作業をしていきます。画面上部の`プッシュ`を選択してください。すると下画像のようなポップアップがでるはずです。
* プッシュ先:どのブランチに対してプッシュするのか(ここではorigin *リモートのブランチ)
* プッシュするブランチ:どのブランチをプッシュするのか(個人開発かつ小規模な場合、ブランチは一本に絞って開発していくと思うので、ブランチについては気になったら調べてください。
`プッシュするブランチ`の枠内にある`master`ブランチのチェックを有効にしてください。できたらいざプッシュ!! このときGithubのアカウントが要求されたらログインしてください。 これでプッシュ完了です!確認のためにGithub上でも変更を確認してみましょう!
しっかり反映されてる!!完!!
# 別のPCで作業できるようにする(おまけ) おまけというわりには大事な項ですが、力尽きたのでテキストオンリーです。 まずは別pcから、Githubへアクセスし、リポジトリのURLを手順4の流れで取得します(リポジトリがパブリックの場合は、自分のアカウントから 以外でも可能) SourceTreeを開き、Cloneを選択し、元のパス/URLとなっているところに今取得したURLを貼り付けします。 これで、どこからデータを引っ張ってくるのか?の指定が完了したので、もひとつ下の保存先のパスに、自分のPCのどこに そのデータを保存するのかを指定します。それが完了したら、クローンを選択しましょう。 あとは、UnityHubを開いて、`リストに追加`からさきほど指定したデータの保存先を指定することで、UnityHubからプロジェクトを開けるようになります。 これで、別PCからも作業ができるようになりました!!めでたしめでたし!!!!!