Gitignore 不忽略文件

2 git gitignore

由于某些原因 gitignore 正在工作,我创建了一个新文件夹并初始化了 git init 创建了一个 .gitignore 文件并添加了一些要忽略的文件,但它并没有忽略我是否遗漏了一些东西?

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

git rm --cached filename
Run Code Online (Sandbox Code Playgroud)

因为当时这些文件位于远程存储库上--cached rm,但在此之后仍然无法工作,为了确定是否存在任何错误,我创建了一个新项目,但它仍然发生,它并没有忽略这些文件

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

在此输入图像描述

另外, .git/info/exclude 有效,但如果文件位于子目录中则不起作用

joa*_*nis 5

TL;DR我认为您只是忘记提交命令的结果git rm --cached

细节

如果这三个文件存在于您的存储库中,则.gitignore不会产生任何影响。它告诉 Git 忽略本地添加的未跟踪文件。但跟踪的文件不能被这种机制忽略。

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

git rm --cached filename
Run Code Online (Sandbox Code Playgroud)

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

git commit -m"Removing filename"
Run Code Online (Sandbox Code Playgroud)

现在,由于filename不再在当前提交/分支上进行跟踪,因此.gitignore应该有效。

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

现在,您真的想也删除远程存储库上的这些文件吗?如果是这样,这就是正确的解决方案。

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