Unityプロジェクトの.gitattributesとマージ設定

YAMLマージドライバー、バイナリアセット処理、シーンファイルの適切な設定を含むUnityゲーム開発用の.gitattributes設定方法。

Language-Specific

詳細な説明

UnityとGit

Unityプロジェクトは、Unityがシーンファイル、プレハブ、その他のアセットをYAMLとしてシリアライズするため、Gitでの取り扱いが難しいことで知られています。これらのファイルはテキストに見えますが、標準のマージアルゴリズムでは適切に処理できない構造を持っています。merge=unityyamlmergeドライバーと慎重な属性設定が不可欠です。

推奨設定

# 自動検出
* text=auto

# Unity YAMLファイル
*.unity      merge=unityyamlmerge eol=lf
*.prefab     merge=unityyamlmerge eol=lf
*.asset      merge=unityyamlmerge eol=lf
*.meta       merge=unityyamlmerge eol=lf
*.mat        merge=unityyamlmerge eol=lf
*.anim       merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf
*.overrideController merge=unityyamlmerge eol=lf
*.playable   merge=unityyamlmerge eol=lf
*.mask       merge=unityyamlmerge eol=lf
*.physicMaterial merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.lighting   merge=unityyamlmerge eol=lf

# C#ソース
*.cs text diff=csharp

# シェーダー
*.shader  text
*.cginc   text
*.hlsl    text
*.compute text
*.glsl    text

# 設定
*.json  text
*.xml   text
*.yml   text
*.yaml  text

# バイナリアセット
*.png    binary
*.jpg    binary
*.jpeg   binary
*.psd    binary
*.tga    binary
*.tiff   binary
*.gif    binary
*.bmp    binary
*.fbx    binary
*.obj    binary
*.3ds    binary
*.dae    binary
*.blend  binary
*.wav    binary
*.mp3    binary
*.ogg    binary
*.aiff   binary
*.ttf    binary
*.otf    binary
*.dll    binary
*.exe    binary
*.so     binary
*.dylib  binary
*.unitypackage binary

UnityYAMLMergeのセットアップ

merge=unityyamlmerge属性を使用するには、UnityのマージツールをGitに設定する必要があります:

# .gitconfigまたは.git/configで
[merge "unityyamlmerge"]
  name = Unity YAML Merge
  driver = '/Applications/Unity/Unity.app/Contents/Tools/UnityYAMLMerge' merge -p %O %A %B %A
  recursive = binary

Unityファイルにeol=lfを使う理由

Unityのバージョン管理統合はLF行末を期待しています。CRLFを使用すると、Unityが常にファイルを再シリアライズし、不要な変更とマージコンフリクトが発生します。すべてのUnity YAMLファイルにeol=lfを強制してください。

ユースケース

GitでUnityを使用するゲーム開発チームは、シーンの破損を防ぎ、適切なYAMLマージを有効にし、Unityプロジェクトに含まれる多くのバイナリアセットフォーマット(テクスチャ、モデル、オーディオ)を処理するためにこれらの属性を設定する必要があります。

試してみる — .gitattributes Generator

フルツールを開く