.gitignore 整个目录名称中有空格

.gitignore entire directory with whitespace in name

目标

试图忽略 "Assets" 文件夹下令人讨厌的名称 "TextMesh Pro" 目录(.gitignore 所在的根目录的完整路径是 "Sky Labyrinth\Assets\Text Mesh Pro\")。

已尝试

我遵循了 3 个线程 (one, two, three) 中的建议,但没有成功。

在我尝试的实际 .gitignore 文件中:

TextMesh Pro/
TextMesh\ Pro/
**/TextMesh Pro/
**/TextMesh\ Pro/
\Assets\TextMesh Pro\
\Assets\TextMesh/ Pro\
**\Assets\TextMesh Pro\
**\Assets\TextMesh/ Pro\
"\TextMesh Pro\"
"**\TextMesh Pro\"

还有一堆我没想到的其他组合(确实没用)。

排除

文件未缓存,我从未从该目录提交任何内容。只是为了确定,我 运行:

git rm -r --cached "Sky Labyrinth\Assets\Text Mesh Pro\"

没有任何匹配项。为了加倍确定,我 运行

git reset --hard

并重新导入资产。我想有一个小警告,我确实提交了一个 .Unity 场景更改,里面有一些 TextMesh Pro 游戏对象;尽管我缺乏专业 Git 知识,但我很确定 Assets\TextMesh Pro\ 目录中的内容不会神奇地被缓存或以某种方式无法忽略。

哈尔普

关于如何正确忽略名称中包含空格的整个子目录的任何想法?我不需要忽略其中的特定文件,我希望忽略整个文件。我知道作为一种解决方法,我可以:

  1. 手动删除目录名称中的空格 - 但每次更新插件时我都必须重复此操作

  2. 在 \TextMesh Pro\ 目录中创建另一个 .gitignore 忽略里面的所有内容

    /*

    这将是我最后的选择,因为这是我唯一要做的事情。但是,我更愿意了解如何正确处理目录名称中的空格,或者了解如果是这种情况根本不可能。

看来您错过了Text和Mesh之间的空格之一。 尝试添加

Assets/Text\ Mesh\ Pro/

到你的 .gitignore

正确答案是:

TextMesh*Pro/

**/TestMesh Pro/

应该也可以

添加到 Sky Labyrinth\Assets\.gitignore

/TextMesh\ Pro/

“试图忽略名称令人讨厌的“TextMesh Pro”目录”

  • / 匹配文字路径,而不是模式
    使用 \ -> \
  • 转义

“在“资产”文件夹下”

  • .gitignore 放入 Assests

如果有问题的文件在您的 git 存储库中,您需要删除它们并在 .gitignore 生效之前推送更改。