連載目次:【連載Git目次】ほんとは簡単?SourceTreeでGitを始めよう!
前回:【連載Git 第6回】UnityのプロジェクトをGitで管理しよう
連載ラストです!
前回まででGitの使い方を解説してきました。
今回は運用する上での注意点なんかを書いてみます。
と言ってもまだほとんど使ってないので
懸念事項一覧みたいな感じですね。
ちゃんと対応できたものから追記していきたいと思います。
UnityプロジェクトをGitで管理する際の注意事項
主にチーム開発時の懸念事項とかです。
バイナリファイルはマージできない
Unityの場合、Sceneファイルなどはバイナリファイルです。バイナリファイルは競合が起こっても差分を確認したり合わせたりすることができません。
(どちらか一方を選択するだけ)
なのでもし2人同時に同じSceneを変更したりすると、
確実に片方の変更は消えることになります。
→2014/01/23 追記
コメントいただきました。匿名さんありがとうございます。
Unity3.5からはSceneをテキストファイルとして扱えるようです!
http://docs.unity3d.com/Documentation/Manual/TextualSceneFormat.html
設定方法確認しておきます。
http://docs-jp.unity3d.com/Documentation/Manual/TextualSceneFormat.html
→BitBucket見てみたらテキスト形式(YAML)で保存されてた!
UnityFreeでもEditorSettingでAssetSerializationをForceTextにするだけで使えるっぽいです。
対策
チーム開発時のブランチの切り方
複数人でソースを共有する場合、各自が自由にブランチを切り、自由にプッシュしていくと
良くわからないブランチで溢れてしまいそうです。
対策
ブランチを切るルール、プッシュするルールを決めた方がよさそうですね。簡単に思いつくのは
・各自の名前をつけたブランチを用意する。
・自分の名前のブランチしかプッシュしない。
・フェッチは全員のブランチを取得
とか?
これも予想。実際にやってみないと分からない。
GitFlowなどを使うのも良さそうです。
いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識
とりかくチーム内で認識を揃えること。
Script名の重複
現在のUnityC#では名前空間(namespace)をサポートしていません。参照:http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html
そのため各々が作ったスクリプトのファイル名がかぶった場合、
配置フォルダが違っていてもビルドエラーとなってしまいます。
対策
namespaceが使えない以上はフォルダ分けしても無意味なのでファイル名をユニークにする必要がありそうです。
・スクリプト作成者の名前をファイル名の頭に付ける
などで対応しましょう。
文字コード
WindowsとMacでコードを共有する場合、文字コードとか気をつけた方がいいかもです。今度Gitを使ってWindowsとMacでソース共有を始めるつもりなので
確認とれたらちゃんとまとめます。
とりあえず軽く調べて出てきたリンクを置いておきます。
Unityであった.csファイルの文字コード絡みのエラー : これを読めば思い出す
スクリプトファイルのutf-8変換 : DEBUG.LOG
改行コード
文字コードと同じように改行コードもWindowsとMacで違います。マージするとき大量の差分が出てしまいそうな気がしないでもないですね。
これもまた調べます。
ライセンス
アセットによってはチームで使うとダメなのもあるのかなーって思ったり。
アセットごとに要確認ですね。
その他
思いつくものを書き連ねましたが実際に使うとまだまだ出てきそうですね。
気づいたものがあれば都度追記していきます。
あとがき
Gitの基礎から全7回に渡って説明してきましたがいかがでしたでしょうか?SourceTreeという素晴らしいツールのおかげでgitコマンドを
一つも覚えることなく説明を終えることができました。
今回の連載はなるべく画像つきで
そのまま手を動かせば使えるように意識して書きました。
少しでもGit初心者さんの足がかりになれば幸いです。
ここまで読んでいただきありがとうございました。