如何在 Unity 中使用 git/版本控制 [重复]

Posted

技术标签:

【中文标题】如何在 Unity 中使用 git/版本控制 [重复]【英文标题】:How to use git/version control with Unity [duplicate] 【发布时间】:2017-09-07 17:46:39 【问题描述】:

Unity 和 git 的正确用法是什么?

如果我推送我对场景和项目所做的更改,然后其他团队成员提取这些更改,他们无法正确合并更改,因为场景是二进制文件。

那么我们如何才能在统一的基础上进行开发并作为一个团队使用版本控制呢?

我正在使用 Unity 5.6.2。

【问题讨论】:

【参考方案1】:

您可以强制 Unity 将资产和场景序列化为基于 YAML 文本的文件,这应该可以解决您与 Git 的合并问题。此设置可在 编辑 > 项目设置 > 编辑器菜单下找到。然后将“资产序列化”设置为 Force Text,这将允许您使用 Unity 的 YAMLMerge 合并场景。

请注意,根据项目大小更改此设置重新导入所有内容可能需要数小时,并且必须在每个客户端上完成。您可以采取其他其他措施来改进 Unity 和 Git 的工作流程,我建议您查看 David Douglas 的 this excellent post,它会更深入地介绍一些可以在同一场景中工作的方法,并且达到里程碑后合并更改。

还有this good Unity Answers post 讨论了不同资产序列化方法的优缺点,您可能希望在使用其中任何一种方法之前先看看这些方法。

【讨论】:

您是否碰巧有一本关于如何使用外部合并工具设置 YAML 合并的指南? 您是否已经查看了我在答案中链接的 Smart Merge 的官方文档页面?尤其是关于 mergespecfile.txt docs.unity3d.com/Manual/SmartMerge.html 的部分 这也是一个很好的设置指南,它在一开始就谈到了自定义合并工具。 gist.github.com/Ikalou/197c414d62f45a1193fd 官方文档中的内容不起作用。 我想我可以让它与 Kdiff 一起使用,就像他们在第二个链接中显示的那样。谢谢。

以上是关于如何在 Unity 中使用 git/版本控制 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用git码云为unity版本控制1

使用git码云为unity版本控制2 常见错误

[教程向]__在IDEA中使用git+github实现代码的版本控制

怎么使用unity进行缺陷管理

对 Unity 项目执行版本控制的最佳方法 [关闭]

在git下提交文件时如何控制重命名阈值?