自上次git commit以来,如何以视觉方式查看对场景所做的更改


11

在将它们提交给git之前,我想查看在场景(.unity文件)中所做的更改。

我研究了几种GIT / Unity解决方案,但所有这些解决方案都是为了合并更改,而不是为了与上一版本显示差异。

场景文件的问题在于它们使用指向其他资产的GUID,而当我打开一个场景文件的差异时,我无法真正使用它进​​行任何处理。

例如: git差异

相反,我想看到这样的东西: 视觉差异

有什么可以做到的吗?


我现在还不确定100%,因此我不作答,但我认为Sourcetree显示了差异。如果您已将项目设置为文本序列化。
基督教徒

1
在这段时间里,我刚刚学会了观看现场和预制文件本身。如今,我可以以某种程度的准确度告诉我们,有一个深色头发,一个金发碧眼,一个红发……Git和Unity确实彼此无关,因此它们中的任何一个都可能不会提供这样的工具。Unity希望推广自己的基于协作云的产品。
拉瑟

如果没有现成的解决方案,我可能会尝试自己开发这种东西。
lilotop

7
做了。将其放在资产商店中。利润。
MichaelHouse

1
@Lasse,实际上,他们正在使用这样的工具。我非常确定它处于beta阶段(我受邀对其进行测试,但他们对此并不完全保密)。我推测它应该在一两个月之内淘汰。
Gnemlock'3

Answers:


1

在将它们提交给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...只要文件不是二进制文件。可以被设置(编辑- >项目设置- >编辑- >资产序列化)。我现在有两个项目,一个是场景文件是二进制数据,另一个是文本。由于我导入的资产鼓励更改为“强制文本”,因此更改了文本一,因为插件/资产/目标平台的某些方面表现更好。警告:更改模式可能会导致数据丢失。
Draco18s不再信任SE SE

-4

我建议您仅将Git与Bitbucket一起使用(作为推送源!),因为它提供了非常好的GUI,可让您查看分支和提交历史记录的图形表示以及文本文件中的更改,甚至可以在其中查看更改。红色和绿色的代码以及许多其他不错的工作流程功能。


我想你完全误解了我的问题。我说的是基于文本的场景文件,其中包含对其他统一对象的guid引用。除非有我不知道的智能位桶客户端,否则可以解决这些引用-您在这里完全不合时宜。
lilotop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.