Gitignore 不忽略文件

Gitignore not ignoring files

由于某些原因 git忽略有效, 我创建了一个新文件夹并初始化了 git init 创建了一个 .gitignore 文件并添加了一些要忽略的文件,但它并没有忽略我是不是遗漏了什么?

在此之前,我在之前的回购中仍然面临这个问题,当时我尝试了一些解决方案,包括

git rm --cached filename

因为那时候这些文件在远程回购上,我做了 --cached rm 但此后仍然没有工作,以确保是否存在任何类型的错误我已经创建了一个新项目但它仍在发生它是不忽略文件

这是整个文件夹的快照甚至 vscode 显示文件已更新

此外,.git/info/exclude 有效,但如果文件位于子目录中则无效

TL;DR 我想你只是忘了提交你的 git rm --cached 命令的结果。

详情

如果这三个文件存在于您的存储库中,.gitignore 将对此没有影响。它告诉 Git 忽略已在本地添加的未跟踪文件。但是这个机制不能忽略被跟踪的文件。

您首先必须删除它们,就像您尝试做的那样:

git rm --cached filename

然后你必须提交这些更改,因为缓存中的内容尚未生效:

git commit -m"Removing filename"

现在,由于 filename 在当前 commit/branch 上不再被跟踪,.gitignore 应该有效。

警告 - 你真的要删除文件吗?

现在,您真的要删除远程仓库中的这些文件吗?如果是这样,这就是正确的解决方案。

但是如果您不想删除远程仓库中的那些文件,这不是可行的方法。相反,您需要的是 git update-index --assume-unchanged filename 告诉您的本地沙箱您不想跟踪您在本地对此文件所做的任何更改,否则这些更改应该保持跟踪。