【Unity】Git管理の詳細
UnityのプロジェクトをGitで管理する場合の構成について学んでいきましょう
Unityが管理するフォルダ構成
Unityプロジェクトでは特定のフォルダ構成が用意されており、これに基づいてプロジェクトの管理が行われます。また、Gitなどのバージョン管理システムを使用する際には、プロジェクトの特定の部分を無視する設定が必要です。これを効果的に行うために、.gitignore
ファイルを適切に設定することが重要です。
Unityプロジェクトの主なフォルダ構成
- Assets:
- プロジェクトで使用する全てのリソースやソースファイルが格納されます。スクリプト、シーンファイル、3Dモデル、テクスチャ、オーディオファイルなどが含まれます。
- ProjectSettings:
- プロジェクト全体に関わる設定が保存されるフォルダです。グラフィックス、ネットワーク、エディタ、ビルド設定などが含まれます。
- Library:
- Unityエディタが内部的に使用する一時ファイルやキャッシュデータが保存されます。このフォルダは再生成が可能なため、バージョン管理には含めないのが一般的です。
- Temp:
- ビルド時などに一時的に生成されるファイルが保存されるフォルダです。この内容は一時的なもので、プロジェクトの実行やビルドには直接関係ありません。
- Packages:
- Unityパッケージマネージャを通じて管理される依存関係やライブラリが記述された
manifest.json
が含まれます。
- Unityパッケージマネージャを通じて管理される依存関係やライブラリが記述された
- Logs:
- Unityエディタやアプリケーションの実行ログが保存される場所です。
- UserSettings:
- エディタのユーザー設定(レイアウト設定など)が保存される場所です。
Gitでの管理除外の設定
UnityプロジェクトでGitを使う場合、不要なファイルやディレクトリをGitリポジトリに含めないように設定することが重要です。以下はUnityプロジェクトのための一般的な.gitignore
設定の例です:
.gitignore
の設定例
# バージョン管理に不要なディレクトリ
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/
# Visual Studio / Rider のキャッシュファイル
.vs/
*.csproj
*.unityproj
*.sln
*.suo
*.user
*.userprefs
*.pidb
*.booproj
*.svd
# パッケージキャッシュ(manifest.json は除く)
[Pp]ackages/
!/[Pp]ackages/manifest.json
# OS によって生成されたファイル
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
この設定により、リポジトリのクリーンさを保ちつつ、必要なファイルのみがバージョン管理されるようになります。Library
、Temp
、Logs
などのフォルダは再生成可能なため無視され、重要なAssets
やProjectSettings
、Packages/manifest.json
は保持されます。
.gitignore
ファイルは、Gitバージョン管理システムに、特定のファイルやディレクトリを無視するよう指示するために使用されます。Unityプロジェクトなどで.gitignore
を適切に設定することは、プロジェクトを整理し、リポジトリのサイズを適切に保つのに役立ちます。以下に、.gitignore
ファイルの基本的な読み方と記述ルールを説明します。
基本的な構文
- コメント:
#
で始まる行はコメントとして扱われ、無視されます。 - パターンの指定: 特定のファイルやディレクトリを指定するためにパターン(ワイルドカードなど)が使われます。
- 除外ルール:
!
で始まるパターンは、それ以前の無視ルールから例外として扱われるファイルやディレクトリを指定します。
主なワイルドカードと記述例
*
(アスタリスク): 任意の文字列にマッチします(例:*.log
はすべての.log
ファイルを指定)。?
(クエスチョンマーク): 任意の1文字にマッチします。[]
(角括弧): 括弧内の任意の1文字にマッチします(例:[Tt]emp
はTemp
またはtemp
にマッチ)。**/
: 任意のディレクトリ階層にマッチします(例:**/temp
はどの階層にあるtemp
ディレクトリも指定)。
サンプルの .gitignore
設定の解説
以下の例から、いくつかのルールを取り上げて説明します。
# バージョン管理に不要なディレクトリ
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/
# Visual Studio / Rider のキャッシュファイル
.vs/
*.csproj
*.unityproj
*.sln
*.suo
*.user
*.userprefs
*.pidb
*.booproj
*.svd
# パッケージキャッシュ(manifest.json は除く)
[Pp]ackages/
!/[Pp]ackages/manifest.json
[Ll]ibrary/
:Library
またはlibrary
という名前のディレクトリを無視します。括弧内の[Ll]
はL
またはl
にマッチすることを意味します。*.csproj
: 拡張子が.csproj
のすべてのファイルを無視します。!/[Pp]ackages/manifest.json
:Packages
ディレクトリ内のmanifest.json
ファイルは無視から除外します。これは、依存関係情報が重要であるため、リポジトリに含める必要があるためです。
このように.gitignore
ファイルを設定することで、不要なファイルがリポジトリに含まれるのを防ぎ、プロジェクトをクリーンに保ちます。
ディスカッション
コメント一覧
まだ、コメントがありません