git添加。正在添加目录中的所有内容,即使它是在gitignore中指定的

git添加。正在添加目录中的所有内容,即使它是在gitignore中指定的,git,Git,当我运行git add.时,它正在添加目录中的所有文件,甚至我在.gitignore中指定了它来忽略特定的文件夹和文件。在这种情况下,它是\uu venv\uuu和\uu pycache。在启动git存储库之前,将创建.gitignore文件并指定要忽略的目录。我删除了git文件夹,并多次从项目的根目录重新初始化存储库,但它仍然没有忽略.gitinore文件中的声明。在Windows上,删除并重新初始化存储库可以修复问题,但在Linux上则不能 更新:将要排除在.git/info/exclude

当我运行
git add.
时,它正在添加目录中的所有文件,甚至我在
.gitignore中指定了它来忽略特定的文件夹和文件。在这种情况下,它是
\uu venv\uuu
\uu pycache
。在启动git存储库之前,将创建
.gitignore
文件并指定要忽略的目录。我删除了
git
文件夹,并多次从项目的根目录重新初始化存储库,但它仍然没有忽略
.gitinore
文件中的声明。在Windows上,删除并重新初始化存储库可以修复问题,但在Linux上则不能


更新:将要排除在.git/info/exclude中的目录添加到.git/info/exclude中是有效的,但将其添加到.gitignore中时,它不会

添加到.gitignore中的规则应为:

__venv__/
__pycache/
# or
__pycache__/
(见附件)

注意尾随的“
/

我刚刚意识到,出于某种原因,我的文本编辑器会自动在声明前添加一个空格。
我在清除文件并再次重写后发现了这一点

这可以解释为什么
.gitignore
规则实际上没有被应用

如果尚未跟踪这两个文件夹中的文件,则不会添加这些文件。
如果没有:


_u_pycache目录中的任何文件是否已经提交到您的repo中?没有。我刚刚意识到,出于某种原因,我的文本编辑器会自动在声明前添加一个空格。如果你不小心在一行的开头输入了一个空格,大多数文本编辑器会很高兴地使用它作为后面所有行的缩进。这是一个很好的特性,因为它通常是我们在编写代码时想要的。例如,函数中的所有行都应该缩进相同。听起来您发现了一种情况,该功能没有太大帮助。是的,我甚至没有意识到我点击了空格键,虽然它非常有用,但在这种情况下很难找到。我确信我们谈论的是Python,所以目录的正确名称是
\uu pycache\uuuu
(前后双下划线)。
git rm --cached -r __venv__/