原因
本地meta文件GUID和拉取的远程分支的某个meta文件的GUID相同
复现过程
- 比如远程分支有testA.meta文件的GUID为
1234
,然后因为一些原因提交了另一个testB.meta文件(GUID也为1234
), - 拉取文件testB.meta后,其GUID为
1234
,激活Unity编辑器后,GUID由于已经和现存的testA.meta冲突了,于是会被重新生成为另一个GUID(比如5678
) - 查看版本控制软件,发现testB.meta被修改(GUID)
- 丢弃修改,回到Unity编辑器界面,再回到版本控制软件界面,发现testB.meta又被修改了(因为GUID仍和testA.meta冲突)
解决方案
- 文件浏览器(而不是Unity编辑器下)删除被修改的meta文件,重命名对应的资产文件,回到Unity编辑器,会自动生成新的meta文件(新的不会冲突的GUID)
- 更新相关联资产的引用(因为GUID变了,引用丢失),确认受影响的所有资产的引用都已经正确设置
- 提交相关所有修改(资产文件和meta文件的新增,旧资产文件的删除,受影响的资产的引用更新)
- 可选:Unity编辑器下重命名该资产文件为之前的名字,meta文件不会被修改,然后提交重命名修改