小新:“我昨天尝试使用Git来管理Unity项目,但效果不太好,管理Unity项目时有什么需要特别注意的地方吗?”
大志:“对于任何使用 Git 管理的项目,大多数需要注意的事情都是共通的。今天我们将学习一些使用 Git 管理 Unity 项目的最佳实践。”
Git 最佳实践
在谈论 Unity 和 Git 之前,我们先来看看 Git 的一些常见最佳实践。
提交相关变更
提交应该与更改相关联。如果修改了两个不同的Bug,则应分两次提交。小提交可以让您的协作者更容易理解,并且在出现问题时可以轻松回滚。
经常提交
频繁提交可确保您的提交较小且相关,并减少代码冲突。
不要提交未完成的工作
这并不意味着您必须在提交之前完成一个完整的功能,而是您需要将功能分解为多个部分并经常提交。不要让协作者在获得您的代码后出现编译错误或系统无法运行。
提交前应进行测试
你应该在提交之前进行测试创作人,不要让你的代码影响其他人的工作。
注意提交留言
投稿留言应明确写明与本次投稿相关的内容(不超过25字)。如果需要填写更详细的内容,则留空行,写上具体的提交信息。
很多孩子往往着急提交,Messages中经常会写一些不相关的字符来满足提交要求。这个坏习惯有一天会伤害你。
版本控制不是备份系统
虽然版本控制可以备份您的项目unity editor,但不要使用 Git 作为备份工具。不要使用 Git 来备份本地所有杂乱的文件。请记住,Git 用于版本管理以及跟踪和管理对这些文件的更改。
多用途分支
分支是 Git 最强大的功能之一。您应该更多地使用分支来拓宽您的开发工作流程:新功能、错误修复、新想法等。
就团队内的工作流程达成一致
Git给了你很多选择,比如划分几个分支unity editor,什么时候打开新分支,merge或者rebase等等。这些应该根据你的项目来选择,并在团队达成共识后严格执行。
Unity 和 Git
了解并实现了上述 Git 最佳实践后地图场景,我们来看看 Unity 中 Git 有哪些特殊功能。
使用Git管理Unity项目的大致流程如下:
在托管平台上创建Git项目(之前我们介绍过多个国内外托管平台,您也可以自己搭建)
在本地克隆中创建的项目
在存储库目录中创建Unity项目
设置Unity项目的一些配置
设置 gitignore 文件
提交并推送,在 Git 的保护下开始愉快地开发 Unity 项目!
配置Unity的文件属性
为什么需要配置Unity的文件属性?这也是基于Git的一些原则:
一般在Unity中需要设置以下几项:
将资产序列化设置为强制文本
如上所述,Git 无法处理二进制文件的合并,只能处理文本文件的合并。如果二进制文件之间存在冲突,则只能选择一个文件保留,并且两个文件不能合并。对于Unity中的文件,我们需要尽量避免这种情况。
默认情况下,Unity的资源序列化模式是Mixed。
资产序列化有以下三种模式:
设置元文件的版本控制
在Unity的Editor设置中,Version Control的Mode需要设置为Meta Files。
对于使用新版本Unity的童鞋来说,一般不需要进行额外的设置。默认是Visible Meta Files,你只需勾选即可。
总共有4种模式:
什么是元文件?
元文件在Unity中用于跟踪资产文件的一些信息,例如元数据、资产之间的关联等。它们是非常重要的数据,无法删除。删除后文件之间的关联信息可能会丢失。
在旧版本的 Unity 中,还有一个“关闭”选项。选择此选项时,Unity 将不会生成元文件。资产文件之间的关联存储在临时文件中。当使用版本控制管理时,关联将会丢失。
使用 Git 时,请务必选择“元文件”选项。
设置 Gitignore
提前设置gitignore文件可以防止临时文件和不需要版本控制的文件被提交到存储库。
对于Unity项目自动生成的文件夹,只需将以下目录添加到版本控制中:
其他文件和Unity自动生成的文件不需要添加到版本控制中,但是需要注意将自己创建的文件或文件夹添加到版本控制中。
Github 中 Unity 项目的 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
注意:gitignore文件可能会随着项目的开发进程而改变。请根据项目实际情况注意维护。
不要将大文件放入git管理
项目中可能存在参考资料、视频、发布的程序等较大文件,建议使用网盘等方式在团队之间共享这些体积较大且很少变化的文件,而不应放置在 Git 存储库中。
尽量不要将中间艺术文件放入项目中
Unity项目开发过程中,经常会出现比较大的文件:比如纹理的原始PSD文件、模型的原始max文件等,这些文件一般都很大,所以尽量不要放在Git中用于管理。版本库中存储的文件应为最终图片或fbx格式的文件。
注意:这个建议并不是绝对的。有时使用psd或max文件可能更合理,需要你自己做出判断。
总结
在Unity项目中使用Git进行管理时,需要注意以下流程:
在托管平台上创建 Git 项目
在本地克隆中创建的项目
在存储库目录中创建Unity项目
设置Unity项目的一些配置(Asset Serialization设置为Force Text)
设置gitignore文件(参考Github提供的gitignore文件)
提交并推送,在 Git 的保护下开始愉快地开发 Unity 项目!
今天的想法
大志:“有了Git,你再也不用担心代码问题了,只要记住及时commit&push就可以了!”
小新:“好啊!”
大志:“别忘了分享你所学到的东西!别忘了分享给正在学习Unity的朋友,也许对他们有帮助。”
文章来源:https://blog.csdn.net/weixin_39924584/article/details/111339964