Unity 为 Assets 文件夹内的文件夹 创建和删除元文件。
这会在使用版本控制时造成恼人的情况(您可以跳过并转到问题):有人创建了一个包含将被忽略的文件的文件夹,但忘记忽略该文件夹的元文件。 Unity 创建元文件,此人将元文件添加到版本控制中。另一个人获得了变更集,由于他们没有文件夹,他们的 Unity 删除了元文件,他们从版本控制中删除了元文件。并非团队中的每个人都理解这一点,因此该过程在 hell 循环中永久存在。
令人惊讶的是,这种情况一直都在发生。那么,两个问题:
- 版本文件夹元文件重要吗?
- 有没有办法自动忽略文件夹元文件 - 特别是在 git 或 mercurial 上?
最佳答案
When creating new assets, make sure both the asset itself and the associated .meta file is added to version control.
对我来说,这是将它们置于版本控制之下的充分理由。我看到两种解决问题的方法:
- 组织:为本地文件夹设置命名约定,例如以“_”开头。但我们都知道这是行不通的 ;-)
- 安装客户端pre-commit hook在所有机器上。我还没有这样做,但看起来很有希望。
我只是玩弄了不同的 git 命令,以下命令可能会有用: git hook 脚本应该首先检查 .gitignore 是否已经改变:
git diff-index --cached --name-only HEAD | grep ".gitignore"
如果它们位于 Assets 文件夹下,则在 .gitignore 中打印出所有新添加的行的目录名称:
git diff --cached --word-diff=plain .gitignore | grep -o -e "{+\/.*\/Assets\/.*+}" | cut -d + -f 2
更新
我刚刚写了这样一个预提交 Hook :-) 请参阅 GitHub 存储库 git-pre-commit-hook-unity-assets对于代码和我的 blog posting有关更多详细信息。
关于git - 在版本控制中忽略文件夹元文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151247/