Since some of the Unity’s assets, such as scenes, can’t be version controlled, it’s always a pain when it comes to more than one developer need to edit a scene in the same time. Fortunately, with some setup, we can include those assets into version control.
- Unity 2017.2.0f3 (64-bit)
Step by Step
Asset Serialization to
Because Unity would save scenes and prefabs as binary files by default, which can’t be version controlled, we need to force Unity to save files as YAML text-based files. In
Edit > Project Settings > Editor menu, choose
Force Text under
Asset Serialization Mode.
2. Treat the Files as Binary to Avoid Git Merging Them Automatically
Now that those assets files are saved in text format, git would merge them automatically by default, which may not be semantically right. To avoid this, we need to add some settings into
.gitattributes. Create one in your project root if you don’t have it yet.
*.unity binary *.prefab binary *.asset binary
3. Set up UnityYAMLMerge with Git
Copy and paste the following lines into your
.git/config or global
.gitconfig file to hook up the merge tool, UnityYAMLMerge, with Git.
[merge] tool = unityyamlmerge [mergetool "unityyamlmerge"] trustExitCode = false cmd = '<path to UnityYAMLMerge>' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
Now your git can include
*.asset files in version control in this Unity project.