xR Deveropers Japan Blog

xRTechが好き・興味がある方のコミュニティです。勉強会やスラックなどでの情報共有を行っています。興味のある方、お気軽にご参加ください^^プログラミングなど未経験の入門希望者も歓迎しています。

UnityプロジェクトをGithubリポジトリ+SourceTreeで管理するセッティング方法(Windows10)(動作確認2019年2月28日)

こんにちは 開発チームのmawaです。

想定読者

  • Unityプロジェクトをチーム開発したい
  • GithubでUnityプロジェクトのコードやモデルをチーム開発に使いたい
  • Windows10でUnityEditor使って開発したい

という方向けです。Unityでは3Dや2Dのグラフィックデータをたくさん扱うことが多いため、他のWebアプリなどの作成プロジェクトのようにGit+Githubというシンプル構成では対応がなかなか厳しいものになりやすいので、プラスアルファの運用知識が必要です。具体的にはGitLFSという仕組みも利用しながら、UnityEditor~GitHubまで統一的に連携が撮れた状態で開発することになります。そのためのノウハウをまとめました。

今回はWindows10でのメモです。Macでも大幅には変わらないと思いますが、GPUリソースが現状比較的低コストで使えるWindowsマシンでのUnity開発からのチーム共有のノウハウについて、まとまった記事が見つからなかったので自分でまとめました。

必要なパッケージ一覧

  • WSL(Windows10で使えるUbuntu)
  • Git for Windows
  • Git LFS(Git とは別のパッケージなので注意)
  • SourceTree for Windows
  • BitBucketアカウント(SourceTreeセットアップ時に強制加入させられる。bitbucket自体は今回は使わない)
  • GitHubアカウント
  • BitBucketアカウント(SourceTreeセットアップ時に強制加入させられる。bitbucket自体は今回は使わない)
  • Unity(バージョンは、3.3f1)

作業工程

[1]WSLがセットアップされている状態にあること

[2]Git for Windows のインストール

[3]GitHubのアカウント取得 ↓
[4]GitHubの管理用リポジトリ作成(unity用 .gitignoreの指定がおススメ)

[5]SourceTree for Windows のインストール

[6]SourceTree と GitHubアカウントの連携

[7]SourceTree にて管理するローカルリポジトリの登録

8Git LFSのインストール

[9]SourceTree にて管理するローカルリポジトリでのGit LFS の適用(初期化)

[10]SourceTree にて管理するローカルリポジトリGitHubの管理用リポジトリの連携

[11]1度git pullしてリモートとローカル同期initial commit

[12].gitignore.gitattributes のgit add → git commit →git push

[13]通常のgithub運用開始、git pull からの作って、git add → git commit →git pushのサイクル開始

作業別具体的メモ

[1]WSLがセットアップされている状態にあること

WSLのセットアップはこういう記事がたくさんあるので参考になさってください qiita.com

[2]Git for Windows のインストール

ここからダウンロード gitforwindows.org

ダウンロード時は下記以外はデフォルト設定でインストールしました。

Git Bashと、Git LFSは欲しいので、チェックしておきます。あとは惰性。 f:id:k_mawa:20190301005648p:plain

パスが変化するのは怖いのでこれを選択 f:id:k_mawa:20190301005702p:plain

これでうまくいきました。なぜかSourceTreeの運用中にGit LFSインストールされてないよとかウィンドウがでてインストール再度したので、なんかこのときのGitLFSが効いているのかどうか謎です。でも一応インストールしておいたほうが無難かなぁ・・・

[3]GitHubのアカウント取得

[4]GitHubの管理用リポジトリ作成(unity用 .gitignoreの指定がおススメ)

[5]SourceTree for Windows のインストール

ここからインストールください
ja.atlassian.com

[6]SourceTree と GitHubアカウントの連携

[7]SourceTree にて管理するローカルリポジトリの登録

[8]SourceTree にてGit LFSのインストール

[9]SourceTree にて管理するローカルリポジトリでのGit LFS の適用(初期化)

SourceTree「new tab」開く

「+Create」ボタン

「Create a repository」
- 保存先のパスを、Unityのプロジェクトのトップディレクトリを参照 - Proj名は参照後自動で入る
- 管理→Git

「次のアカウントでリポジトリを作成」→空欄(リモートリポジトリは後で登録するため)

「作成」

「クローン作成先のパス~はすでに存在しています。続行して、このフォルダにリポジトリを作成しますか?」→「はい」を選択

作業ツリーのファイルのところにファイルが並び、コミット前の状態になる。

git init まで完了した状態になる。

Git LFS initを行う。下記方法①と②どちらかを行えばOKだと思われる。(自分は両方やったので、どっちが効いたかわからない。たぶん①が効いた気がする。)

方法①「リポジトリ」>Git LFS >「リポジトリを初期化」>トラックファイルを適当にpngとかだけ設定する>.gitattributesもつくられる>あとでトラックファイル種類など追記する (git lfsが未インストールの場合、「ツール」>「オプション」でGitの設定を見て閉じようとすると「git lfs まだインストールされてませんけどしますか?」とでる)

方法②git bash を立ち上げて $ git lfs install

[10]SourceTree にて管理するローカルリポジトリGitHubの管理用リポジトリの連携

リモートリポジトリの設定
GitHubのURLをコピーしておく

「リモート」を選ぶ>「追加」

  • リモート名はorigin,URLはgithubリポジトリパス
  • RemoteAccountはGithubのアカウント(SourceTreeに設置しておく)


設定したら「OK」

[11]1度git pullしてリモートとローカル同期initial commit

1度リモートからプルしておく!(同期がおかしくなるエラーになる)
やらかしたときは、Pushに失敗してたらリセットで!

SourceTreeでGit訂正操作
qiita.com

[12].gitignore.gitattributes のgit add → git commit →git push

.gitignoreファイル生成(Win10だとなんかGUIで隠しファイルつくれないので、WSLでtouchコマンド叩いて作る。(Win10の場合、/mnt/c/Users/(ユーザー名)/Documents/配下にUnityプロジェクトのフォルダがデフォルトでは作られている。 編集は普通にできる。) ↓ .gitattributeファイル編集

下記記事が.gitignore.gitattributesの設定についてわかりやすい記事でした ikep.hatenablog.com

[13]通常のgithub運用開始、git pull からの作って、git add → git commit →git pushのサイクル開始

Unityの設定を変更

  • VersionControl→Mode VisibleMetaFiles
  • AssetSerialization→Mode Force Text

(よくわからないけど、最初からなってた)


UnityProj保存

残りのファイルをGitHubにプッシュ