如何使用Git进行Unity3D源代码控制?
在Unity 3D中使用Git源代码控制的最佳实践是什么,尤其是在处理Unity 3D项目的二进制本质时? 请描述工作流程,将在.gitignore中包含哪些路径,应在Unity和/或项目中设置哪些设置以及应该注意的其他特殊事项。
注:我意识到使用资产服务器是Unity推荐的方式,但我想使用Git的原因有很多。 请不要回答说明或争辩说我应该只使用资产服务器。 资产服务器真的不适合我。
以下是我个人博客的摘录。
与3D游戏一起使用Git
2015年10月更新: GitHub已经发布了Git的一个名为Git LFS的插件,可以直接处理下面的问题。 您现在可以轻松高效地版本大型二进制文件!
Git可以很好地与3D游戏一起使用。 然而,这里主要的警告是,随着您的提交历史的膨胀,版本控制大型(> 5 MB)媒体文件可能会长期成为问题。 在我们的项目中,我们已经解决了这个潜在的问题,只有在认为是最终的时候才对二元资产进行版本管理。 我们的3D艺术家使用Dropbox的对WIP资产的工作,无论是上述的原因,因为它的速度更快和更简单的(不是很多艺术家会积极想使用Git的!)。
Git工作流程
您的Git工作流程非常重要,您需要根据自己作为团队的经验以及您如何一起工作来自行决定。 然而。 我强烈建议您在此处提供原作者描述的适当命名的Git Flow方法。
在这里,我不会深入探讨这种方法是如何工作的,因为作者可以完美地描述它,并且只用很少的几句话,所以很容易通过。 我现在一直在使用我的团队,这是迄今为止我们尝试过的最好的工作流程。
Git GUI客户端应用程序
这在这里是个人偏好,因为在Git GUI方面有很多选择,或者是否使用GUI。 但是我想建议免费的SourceTree应用程序,因为它可以完美地与Git Flow扩展插件结合使用。 阅读SourceTree教程,了解在他们的应用程序中实现Git Flow方法。
Unity3D忽略文件夹
对于最新的版本检查Github保持Unity.gitignore文件没有操作系统细节。
# =============== #
# Unity generated #
# =============== #
Temp/
Library/
# ===================================== #
# Visual Studio / MonoDevelop generated #
# ===================================== #
ExportedObj/
obj/
*.svd
*.userprefs
/*.csproj
*.pidb
*.suo
/*.sln
*.user
*.unityproj
*.booproj
# ============ #
# OS generated #
# ============ #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Unity3D设置
对于Unity 3D v4.3及更高版本:
Unity → Preferences → Packages → Repository
启用External
选项。 Edit
菜单并选择Project Settings → Editor
: Version Control Mode
切换为Visible Meta Files
。 Asset Serialization Mode
切换为Force Text
。 File
菜单保存场景和项目。 希望您将现有的回购协议迁移到LFS?
查看我的博客文章,了解如何在此处执行操作。
其他配置
在Git和Unity3D项目中使用少数几个主要的烦恼之一是Git不关心目录,并且在从它们中移除文件之后会很高兴地留下空目录。 Unity3D将为这些目录制作* .meta文件,并且当Git提交时会继续添加和删除这些元文件,可能会导致团队成员之间的战斗。
将此Git合并后挂钩添加到/.git/hooks/
文件夹中,以获取其中包含Unity3D项目的存储库。 在任何Git拉/合并后,它会查看哪些文件已被删除,检查它存在的目录是否为空,如果删除。
在Unity 4.3中,您还必须从偏好设置中启用外部选项,但自从Unity 4.5之后,他们放弃了选项,因此完整的设置过程如下所示:
Editor → Project Settings → Editor → Version Control Mode
切换到Visible Meta Files
Editor → Project Settings → Editor → Version Control Mode
Editor → Project Settings → Editor → Asset Serialization Mode
切换到Force Text
Editor → Project Settings → Editor → Asset Serialization Mode
File
菜单中保存场景和项目 另外我们的团队正在使用更多扩展的.gitignore
文件:
# =============== #
# Unity generated #
# =============== #
Temp/
Library/
# ===================================== #
# Visual Studio / MonoDevelop generated #
# ===================================== #
ExportedObj/
obj/
*.svd
*.userprefs
/*.csproj
*.pidb
*.suo
/*.sln
*.user
*.unityproj
*.booproj
# ============ #
# OS generated #
# ============ #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
请注意,您需要在源代码控制下保留的唯一文件夹是Assets
和ProjectSettings
。
有关在源代码控制下保存Unity Project的更多信息,请参阅本文。
什么是GIT?
Git是Linus Torvalds于2005年(Linux操作系统创始人)开发的免费开源分布式版本控制系统(SCM)。 它被创建用来控制从小到大的项目,速度和效率。 谷歌,Facebook,微软等领先公司每天都会使用GIT。
如果你想了解更多关于GIT的信息,请查看这个快速教程,
首先确保你已经建立了你的Git环境。你需要设置你的本地环境和一个Git仓库(我更喜欢Github.com)。
GIT客户端应用程序Mac / Windows
对于GIT gui客户端应用程序,我建议您使用Github.com,
GitHub是与朋友,同事,同学以及陌生人分享代码的地方。 超过五百万人使用GitHub来共同构建令人惊叹的事物。
Unity3d设置
你需要做这些设置
在编辑→项目设置→编辑器→版本控制模式中切换到可见元文件。
在Unity→Preferences→Packages→Repository中启用外部选项
在编辑→项目设置→编辑器→资产序列化模式中切换到强制文本。
来源: 使用Git与3D游戏源代码控制
链接地址: http://www.djcxy.com/p/68315.html上一篇: How to use Git for Unity3D source control?
下一篇: How to convert a Color32[] image from WebCamTexture to a UIImage in iOS?