为 Unity 设置 Git 存储库

在为 Unity 开发初始化 Git 存储库时,有几件事需要完成。

Unity 忽略文件夹

并非所有内容都应在存储库中进行版本控制。你可以将以下模板添加到存储库根目录中的 .gitignore 文件中。或者,你可以在 GitHub 上检查开源 Unity .gitignore ,也可以使用 gitignore.io生成一个用于统一的。

# Unity Generated
[Tt]emp/
[Ll]ibrary/
[Oo]bj/

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Visual Studio / MonoDevelop Generated
ExportedObj/
obj/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd

# OS Generated
desktop.ini
.DS_Store
.DS_Store?
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

要了解有关如何设置 .gitignore 文件的更多信息,请查看此处

Unity 项目设置

默认情况下,Unity 项目未设置为正确支持版本控制。

  1. (在 v4.5 及更高版本中跳过此步骤)在 Unity → Preferences → Packages → Repository 中启用 External 选项。
  2. 切换到 Edit → Project Settings → Editor → Version Control Mode 中的 Visible Meta Files
  3. 切换到 Edit → Project Settings → Editor → Asset Serialization Mode 中的 Force Text
  4. File 菜单中保存场景和项目。

附加配置

使用 Git 和 Unity 项目的几个主要烦恼之一是 Git 不关心目录,并且在从它们中删除文件后会愉快地留下空目录。Unity 将为这些目录制作*.meta 文件,当 Git 提交不断添加和删除这些元文件时,可能会导致团队成员之间发生争执。

将此 Git 合并后挂钩添加/.git/hooks/文件夹中,以获取包含 Unity 项目的存储库。在任何 Git pull / merge 之后,它将查看已删除的文件,检查它所在的目录是否为空,如果是,则删除它。