Help us understand the problem. What is going on with this article?

UnityプロジェクトをGitで管理

More than 1 year has passed since last update.

前提

  • Bitbucket使用
  • SourceTree使用

1. Unityプロジェクト作成と初期設定

適当な場所にUnityプロジェクトを作成しUnity Editorで開く。
Edit > Project Settings > Editor を選択し、以下項目を設定して保存する。

EditorSettings

  • Version Control - Mode : Visible Meta Files
    metaファイルはAssetフォルダ内の全てのアセットに対してUnityで必要な管理情報が記載されるファイルで、metaファイルを表示させることでUnity外部のバージョン管理システムを有効化する。

  • Asset Serialization : Force Text
    全てのアセットをテキスト形式に変換することで、SceneやPrefabなどのバイナリフォーマットのファイルをテキストで見ることでできるので、バージョン管理し易くなる。

2. Unityプロジェクトでローカルリポジトリ作成

初期設定が完了したUnityプロジェクトでローカルリポジトリを作成する。
この時リモートリポジトリは作成しない。

ローカルリポジトリ作成

変更ファイルが800以上ある...?

ローカルリポジトリ作成後

3. 無視リストを設定

800以上あるファイルのうちバージョン管理が必要なのは以下ディレクトリ配下のファイルのみ。

  • Assets
  • ProjectSettings
  • UnityPackageManager

それ以外はgitignoreに設定して管理対象外とする。
GitHubにテンプレートがあるので拝借。

Unity.gitignore

$ curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore

中身はこんな感じ

$ cat .gitignore
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
Assets/AssetStoreTools*

# Visual Studio cache directory
.vs/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.opendb

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

かなり減った

無視リスト設定後

4. Git LFS トラック対象ファイル設定

画像や音声ファイルなどのバイナリデータはファイルサイズが大きくなりがちなのでGit LFSトラック対象とする。
またまた以下を拝借。

.gitattributes for Unity3D with git-lfs

$ curl -o .gitattributes https://gist.githubusercontent.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f/raw/15f60a55a50b5c058de5e14369051ed268db0c77/.gitattributes

中身はこんな感じ

$ cat .gitattributes
## Unity ##

*.cs diff=csharp text
*.cginc text
*.shader text

*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.physicsMaterial2D merge=unityyamlmerge eol=lf
*.physicsMaterial merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf


## git-lfs ##

#Image
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text

#Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text

#Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text

#3D Object
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text

#ETC
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text

あとは適当な画像を入れてcommitし、リモートリポジトリを作成してpush
Bitbucket側の設定でGit LFSにpushしたファイルが表示されていればOK

GitLFS

おわり

cs1000
技術共有というより備忘録として使います。 肉とカレーが好き
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした