使用git管理unity工程

版本控制器说明

版本控制器的概念在之前的文章
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 里面做以下设置:

  1. Version Control - 设置为 Visible Meta Files,这样 .meta 文件就可以添加到版本控制中。在提交新文件时,其对应生成的 .meta 文件一定要一起提交。如果你不这么做很多时候在运行时是没问题的,是因为 Unity 对这些没有找到 .meta 文件的资源会本地再创建一个。问题是 .meta 文件中有一个重要的东西是该资源的 UUID,Unity 用这个值来定位这个资源。如果两台机器上 .meta 文件不一样,会导致 Unity 找不到某个资源。
  2. Asset Serialization - 设置为 Force Text,这样项目中像 prefab 和动画等文件会以纯文本格式保存,在看修改的 diff 时会比较好用。
  3. 建立 .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 基本使用文章进行学习

你可能感兴趣的:(日常学习)