Unity Git - 忽略库

Cos*_*ure 6 git conflict metadata gitignore unity-game-engine

过去两天,我们一直在尝试在 Mac 和 PC 之间的项目中使用 Unity 设置 Git。我们让它有点工作,但我们仍然存在元数据问题和 Library/AssetDatabase3 中的冲突。

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

我们还将在提交期间获得巨大的元数据列表,而不是只看到实际更改的文件的更改,还会有数百个元数据的列表。再次来自图书馆。

知道为什么库文件夹不会被忽略文件完全忽略吗?冲突问题似乎来自于 assetDabase 文件。对于 Mac 和 PC 之间的良好工作流程有什么建议吗?

小智 13

我最近发生了这种情况,发现问题是我的整个 Unity 项目都在 repo 的一个文件夹中,而 gitignore 使用的语法是

/[Ll]ibrary/
Run Code Online (Sandbox Code Playgroud)

它只搜索与 gitignore 本身相同级别的文件夹,而

[Ll]ibrary/
Run Code Online (Sandbox Code Playgroud)

没有前导 / 也搜索所有子文件夹。删除前导 / 导致它正确忽略库。希望这可以帮助!

编辑:应该注意的是,如果您出于某种原因碰巧在其他地方使用该名称,则此解决方案还会导致它忽略任何其他名为 Library 的文件夹。

  • 这解决了我的问题,但我必须修改“.gitignore”文件,添加特定的 Unity 路径,例如“/GameName/[Ll]ibrary”等。另外,我在项目根目录中创建了该文件并运行“git rm -r --cached .”命令 (2认同)

小智 8

即使在您将文件添加到 gitignore 之后,Git 可能仍然知道您添加的文件。

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

git rm -r --cached .
git add .
git commit -m "fixed untracked files"
Run Code Online (Sandbox Code Playgroud)

  • 嗨,不幸的是这对我不起作用,实际上它搞乱了整个 Unity(每次启动时崩溃),我不得不回滚到旧的提交。 (2认同)