Unity为Asset文件夹中的文件夹创建和删除元文件 .
这可能会在使用版本控制时产生令人讨厌的情况(您可以跳过并转到问题):有人创建了一个文件夹,这些文件将被忽略但忘记忽略文件夹的元文件 . Unity创建元文件,此人将元添加到版本控制 . 另一个人获得变更集,由于他没有该文件夹,他的Unity删除了元文件,他从版本控制中删除了元文件 . 并非团队中的每个人都理解这一点,因此这个过程会在地狱的循环中延续下去 .
令人惊讶的是,这种情况始终存在 . 那么,有两个问题:
-
版本文件夹元文件很重要吗?
-
有没有办法自动忽略文件夹元文件 - 特别是在git或mercurial上?
2 回答
要包含元文件和资源,只需在排除后添加以下内容:
这是我的.gitignore示例:
我把它放在带有git存储库结构的文件夹中,所以我的项目结构看起来类似于:
希望有所帮助 .
Unity docs说:
对我来说,这是足以将它们置于版本控制之下的原因 . 我看到两种解决问题的方法:
组织:为本地文件夹设置命名约定,例如从"_"开始 . 但我们都知道这不起作用;-)
在所有计算机上安装客户端pre-commit hook . 我还没有这样做,但似乎很有希望 .
我只是玩了不同的git命令,以下内容可能很有用:git hook脚本首先检查.gitignore是否已更改:
如果它们位于Assets文件夹下,则打印出.gitignore中所有新添加的行的目录名:
Update
我刚写了这样一个预提交钩子:-)有关代码,请参阅GitHub存储库git-pre-commit-hook-unity-assets,有关详细信息,请参阅我的blog posting .