Unity Git - 忽略 Library 文件夹

14

我们过去两天一直在尝试在 Mac 和 Pc 之间的项目中设置 Git 和 Unity。我们已经有了一定程度的工作,但我们仍然在 Library/AssetDatabase3 中遇到一些元数据和冲突方面的问题。

我们将整个 Library 文件夹放在 .gitignore 文件中,但由于某种原因,在其中有一些文件似乎没有被忽略。

在提交期间,我们还会看到大量的元数据列表,而不是只查看实际更改的文件,会有数百个元数据列表。同样来自 Library。

有任何想法为什么 Library 文件夹不会完全受到忽略文件的影响吗?与 assetDatabase 文件有关的冲突问题似乎正在出现。对于 Mac 和 Pc 之间的良好工作流有什么建议吗?


在这个SO答案中涵盖了:https://dev59.com/hWMl5IYBdhLWcg3wqIdh - user3071284
3个回答

27

最近我遇到了同样的问题,发现是因为我的整个Unity项目都在一个文件夹中,而且gitignore使用的语法是

/[Ll]ibrary/

只搜索与.gitignore在同一级别的文件夹,而

[Ll]ibrary/

没有前导斜杠会搜索所有子文件夹。 去掉前导斜杠后,它会正确忽略 Library。希望这可以帮助你!

编辑:应该注意,如果您在其他地方使用该名称,这个解决方案还将导致它忽略任何其他名为 Library 的文件夹。


2
这解决了我的问题,但我必须修改.gitignore文件,加入特定的Unity路径,例如/GameName/[Ll]ibrary等等。此外,我在项目根目录中创建了文件,并运行了git rm -r --cached .命令。 - franco
以上评论是正确的方法,应该被转化为一个答案并被接受为正确答案。 - undefined

13

即使你已经将文件添加到gitignore中,Git仍可能知道你添加的文件。

尝试提交你实际的更改,然后运行以下命令。

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

2
嗨,很不幸这对我没用,实际上它搞乱了整个Unity(每次启动都会崩溃),我不得不回滚到旧的提交。 - CosmicSeizure

4
强烈建议按照此指南设置您的Git仓库。
您应该使用Unity的"meta"文件进行资源序列化,这将使您能够在版本控制中忽略Library文件夹。
元数据文件包括资源导入设置、GUID信息等。这些信息通常存储在Library文件夹中,每台计算机在导入资源时都会自动生成该文件夹。元数据文件中包含的数据很重要,必须在不同计算机之间保持一致;Library中的其他信息不一定一致,在版本控制中会引起不必要的冲突。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接