版本控制器说明
版本控制器的概念在之前的文章
Git 基本使用
中已经有了一定的介绍,本篇文章介绍下如何使用git作为unity的版本控制器
.gitignore文件
关于.gitignore
文件的详细介绍,在git的官网中有介绍
gitignore
简单的来说,这个文件的目的就是让指定的文件被git忽略,从而不会被检测变更。通常将编程工具生成的中间代码、debug文件夹、或是其他不重要的中间生成文件列入gitignore
文件。在github上有一个工程,存放着几乎各种编译环境适用的gitignore文件,你可以从上边查找自己需要的文件,将文件下载下来或是直接复制下来。
windows一般不允许新建没有文件名的文件,所以最好使用其他的文本编辑器来新建这个文件。
这里给出unity适用的gitignore文件内容,右键链接另存为下载。文件中具体内容如下:
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*
# Visual Studio 2015 cache directory
/.vs/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
# Unity3D generated meta files
*.pidb.meta
# Unity3D Generated File On Crash Reports
sysinfo.txt
# Builds
*.apk
*.unitypackage
Unity工程设置
新建项目后,在 Unity 编辑器里选择 Edit -> Project Settings -> Editor,在 Inspector 里面做以下设置:
- Version Control - 设置为 Visible Meta Files,这样 .meta 文件就可以添加到版本控制中。在提交新文件时,其对应生成的 .meta 文件一定要一起提交。如果你不这么做很多时候在运行时是没问题的,是因为 Unity 对这些没有找到 .meta 文件的资源会本地再创建一个。问题是 .meta 文件中有一个重要的东西是该资源的 UUID,Unity 用这个值来定位这个资源。如果两台机器上 .meta 文件不一样,会导致 Unity 找不到某个资源。
- Asset Serialization - 设置为 Force Text,这样项目中像 prefab 和动画等文件会以纯文本格式保存,在看修改的 diff 时会比较好用。
- 建立 .gitattributes 文件。在 Windows 上默认 git 配置会自动将文本文件中的 \n(LF)转换成 \r\n(CRLF),但是 Unity 保存文本文件的时候总是使用的 \n。这样有一个问题就是你修改了 .meta 文件以后就算再变回原来的设置,git 里面也会显示其被修改过了。因为 git 认为他是文本所以把里面的换行改成了 \r\n,但是 Unity 保存资源的时候又写的是 \n,这样 git 又认为它变了。在项目根目录建立 .gitattributes 文件如下,右键链接另存为下载:
* text=auto
# keep lf on unity files
*.asset text eol=lf
*.meta text eol=lf
*.prefab text eol=lf
*.unity text eol=lf
关于git工具的其他操作,参照Git 基本使用文章进行学习