Gitでデータをコミット・プッシュする際に、Unityの「Library」フォルダや「.csproj」「.sln」などの余計なデータを含めてしまうと、チームメンバーに迷惑をかけてしまいます。
この記事では「.gitignore」の設定方法を紹介します。
目次
なぜ.gitignoreの設定が必要なのか
余計なデータをコミット・プッシュしてしまうと、以下の問題が発生します。
- 相手側がデータを取り込んだ際にUnityの設定が上書きされる
- 相手がコミット・プッシュする際に不要なファイルがリストアップされる
- リポジトリのサイズが無駄に大きくなる
初期設定時に「.gitignore」で余計なデータを無視するリストを作成しておくことが重要です。
.gitignoreの設定方法
- 「.git」フォルダと同階層に「.gitignore」という名前のファイルを作成
- ファイルに以下の内容をコピペ

# 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を設定せずにプッシュしてしまった場合
すでに余計なファイルをプッシュしてしまった場合の対処法です。
- 関連するファイルをすべて削除して、コミット・プッシュ
- 「.gitignore」を作成して、コミット・プッシュ
- チームメンバーにデータを反映してもらう
これで以降のデータのやり取りはスムーズになります。
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
まとめ
- .gitignoreはプロジェクト開始時に必ず設定する
- Library、Temp、.csproj、.slnなどは除外する
- GitHubの公式テンプレートを使うと確実
- すでに管理中のファイルを無視するにはskip-worktreeを使う
