Git 忽略仍列在未跟踪列表中的文件

Git ignore files still listed in untracked list

我试图忽略来自 VS 的构建文件,它们位于 objbin 目录中。

为了做到这一点,我指定了(.vs 只是包含一些缓存数据的目录,这是不必要的,我也不想要那个):

**/.vs/**
.vs/
**/obj/**
obj/
**/bin/**
bin/

但是尽管如此,它们仍然显示在未跟踪的文件列表中,当我 git add 它们时,所有这些目录及其所有内容都会被添加。

我知道这已被讨论过很多次,但似乎对我没有任何作用。

我试过单独推送.gitignore使之生效,但是没有成功。

我试过使用斜杠、正斜杠、双斜杠,都没有用。

我也试过this solution,也没用...

我想我错过了一些非常基本的东西,但不知道它可能是什么。

解决方案很简单,但确实出乎意料(至少对我而言),所以我想把答案留给所有将 运行 遇到同样问题的人。 (也是因为我没有找到任何指向该问题的线索)。

错误是 .gitignore 文件的编码(它是 UCS-2 BE BOM)- 导致 GIT 无法正确读取它。一旦我将它设置为 UTF-8 它就起作用了。

不知道是什么导致文件编码,但它肯定禁用了 .gitignore 文件的功能。

显然,文件本身可以简化为(我发布了扩展版本以显示我所有的尝试):

**/.vs/**
**/bin/**
**/obj/**