Gitでコミットやプッシュを行う際、Unityの「Library」フォルダや「.csproj」「.sln」などの生成ファイルを含めてしまうと、競合の発生や環境の破損を招くおそれがあります。
この記事では、Unityプロジェクトにおける「.gitignore」の設定手順と注意点を解説します。
なぜ.gitignoreの設定が必要なのか
自動生成される不要なファイルをGit管理に含めると、以下の問題が発生します。
- 他の開発者が変更を取り込んだ際に、各自のUnity環境設定が上書きされる
- コミットやプッシュの対象に不要な変更が頻繁にリストアップされる
- リポジトリの容量が肥大化し、クローンやフェッチに時間がかかる
プロジェクト作成直後の初期設定時に、不要なファイルを除外する「.gitignore」を用意しておくことが重要です。
.gitignoreの設定手順
- 「.git」フォルダと同階層(プロジェクトルート)に「.gitignore」という名前のファイルを作成
- 作成したファイルにUnity用の除外設定を記述

# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
MemoryCaptures can get excessive in size.
/[Mm]emoryCaptures/
Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta
Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
Visual Studio cache directory
.vs/
Gradle cache directory
.gradle/
Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
Unity3D generated file on crash reports
sysinfo.txt
Builds
*.apk
*.aab
*.unitypackage
Crashlytics generated file
crashlytics-build.properties
Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata//.bin*
Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*参考:https://github.com/github/gitignore/blob/master/Unity.gitignore
.gitignoreを設定せずにプッシュしてしまった場合の対処法
すでに不要なファイルをリモートリポジトリにプッシュしてしまった場合の対処手順です。
- 除外対象のファイルをリポジトリ上から削除(git rm –cached)してコミット・プッシュ
- 「.gitignore」を作成・更新してコミット・プッシュ
- チームメンバーに変更を取り込んでもらい、各自の環境で再生成を確認
上記の手順を踏むことで、以降のGit操作における競合や不要な変更の混入を防げます。
Git追跡中のファイルをローカルでのみ変更無視する方法
リモートの追跡は維持したまま、手元のローカル環境でのみ変更をコミット対象外にしたい場合の手順です。
一度もGitに追加していないファイル
.gitignoreまたは.git/info/excludeに除外パターンを記述します。
すでにGit管理されているファイルの変更を無視する方法(skip-worktree)
例:Test.unityというファイルの変更をローカルで無視したい場合
無視する
git update-index --skip-worktree Unity/Assets/Test.unity元に戻す
git update-index --no-skip-worktree Unity/Assets/Test.unity状況確認
git ls-files -v | grep ^Sassume-unchangedとの違い
git reset --hardでフラグがリセットされてしまう場合があるため、ローカルな変更を維持する用途にはskip-worktreeの使用が推奨されます。
# 無視する
git update-index --assume-unchanged Unity/Assets/Test.unity
元に戻す
git update-index --no-assume-unchanged Unity/Assets/Test.unity参考:https://qiita.com/usamik26/items/56d0d3ba7a1300625f92
Unity関連のほかの記事は、まとめから確認できます。

環境設定の記事は、ほかにもあります。




まとめ
- .gitignoreはプロジェクト作成時に必ず設定する
- Library、Temp、.csproj、.slnなどの自動生成ファイルを除外する
- GitHub公式のUnity用テンプレートを活用する
- すでに追跡されているファイルの変更をローカルで無視したいときはskip-worktreeを使う
