如何使用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及更高版本:

  • (在v4.5及更高版本中跳过此步骤)在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
    

    请注意,您需要在源代码控制下保留的唯一文件夹是AssetsProjectSettings

    有关在源代码控制下保存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?