在将它们提交给git之前,我想查看在场景(.unity文件)中所做的更改。
我研究了几种GIT / Unity解决方案,但所有这些解决方案都是为了合并更改,而不是为了与上一版本显示差异。
场景文件的问题在于它们使用指向其他资产的GUID,而当我打开一个场景文件的差异时,我无法真正使用它进行任何处理。
有什么可以做到的吗?
在将它们提交给git之前,我想查看在场景(.unity文件)中所做的更改。
我研究了几种GIT / Unity解决方案,但所有这些解决方案都是为了合并更改,而不是为了与上一版本显示差异。
场景文件的问题在于它们使用指向其他资产的GUID,而当我打开一个场景文件的差异时,我无法真正使用它进行任何处理。
有什么可以做到的吗?
Answers:
在将它们提交给git之前,我想查看在场景(.unity文件)中所做的更改。
只要场景文件不是二进制文件,任何体面的git工具都可以做到; 但是,正如您提到的,GUID参考使其难以阅读。如果场景是二进制的,则序列化可以在中进行更新Edit -> Project Settings -> Editor -> Asset Serialization
。但是,请注意:可能会发生数据丢失(请参阅下面的Draco18的评论。)。
我研究了几种GIT / Unity解决方案,但所有这些解决方案都是为了合并更改,而不是为了与上一版本显示差异。
查看对单个文件所做的更改是git log的核心功能之一。实际上,对此有一个stackoverflow问题。基本上,您会使用类似
git log --follow path/to/scene.unity
显示该文件的历史记录。添加-1
以显示对指定文件的最新更改。省略-1
并用于-p
查看为修改该文件的每次提交而制作的补丁。我建议在接触git-log文档之前通读stackoverflow问题,因为它很长。
相反,我想看到这样的东西:
[场景图差异]
有什么可以做到的吗?
据我所知,不。话虽如此,Unity for Git似乎是找到它的自然之地。由于它处于Alpha状态,因此您应该在此处创建一个问题来解决此问题。由于将git diff应用于单位的固有场景图是唯一的,因此我怀疑它与此处的相关性很强。
Any decent git tool will do this
...只要文件不是二进制文件。这可以被设置(编辑- >项目设置- >编辑- >资产序列化)。我现在有两个项目,一个是场景文件是二进制数据,另一个是文本。由于我导入的资产鼓励更改为“强制文本”,因此更改了文本一,因为插件/资产/目标平台的某些方面表现更好。警告:更改模式可能会导致数据丢失。