在我的项目的根目录下,我有一个foo文件夹。在foo文件夹中有一个bar文件夹。我想忽略我的酒吧文件夹内所有文件的所有更改。我的gitignore里有这个

/foo/bar

该文件夹被检查:它存在,它有文件要忽略。Gitignore承诺了。然而,我有一个文件,我做了一个修改,是在我的酒吧文件夹。当我打字时

git status

在我的git bash中,我看到了应该被忽略的文件。原因是什么,我怎样才能成功地忽略我的栏文件夹内的所有文件?

注意,之前使用同一行的文件被忽略,但是我必须临时删除这一行以在服务器上提交一些内容。提交后,我把线放回gitignore。这是一段时间前,但现在我已经观察到文件将在git状态。我希望能够修改被忽略的文件,而不出现在git状态中。


我猜这个文件夹以前被检入git ?

执行命令git rm -r——cached <文件夹>,再次检查。


对我来说,公认的答案是解决方案的一部分,而不是全部。也许,我将要发布的其他步骤是显而易见的,但我首先错过了它们。下面是我采取的步骤,以确保我的.gitignore文件忽略我想要它忽略的文件夹:

提交您需要修复/更改的任何更改。 执行命令:git rm -r——cached。(从git索引中删除所有内容,以便刷新git存储库) 然后执行如下命令:git add。(将所有内容添加回回购) 最后,使用git commit -m "提交这些更改。gitignore固定”

您可以在这里找到我找到解决方案的文章的链接。


我有这个问题,我意识到git实际上忽略了正确的文件/文件夹,但我的代码编辑器(Visual Studio code)只是有bug,并没有在UI侧栏中正确地“使它们变灰”。我重新启动VSCode,他们是灰色的预期。


作为公认答案的补充

git rm -r --cached /foo/bar/
git status

当我这样做,终端显示了一堆rm文件在该目录。所以为了防止另一个可能不必要地影响远程的提交,我做了:

git reset HEAD *
git status

之后,它说什么都没有提交,当我修改文件/foo/bar/和做一个git状态,我仍然没有得到提交。


我在powershell中使用echo "build" > .gitignore创建了。gitignore。这将创建一个UTF-16LE编码的文件。Git无法识别该文件的内容,并继续将构建文件夹显示为未跟踪。我删除了文件,并在geany文本编辑器(UTF-8)中重新创建了它,git现在忽略了构建文件夹。简短的搜索强化了git不喜欢UTF-16。


这就解决了

我已经做了echo node_modules >> .gitignore,它没有工作。

windows终端保存文件在UCS-2 LE BOM和git似乎不接受这一点。

我用记事本打开文件,用UTF-8编码保存

现在起作用了。

我认为他们需要修复这个,因为echo "filetoignore" >> .gitignore实际上似乎是一个方便的事情要做


大多数时候,这是一个编码问题。因此,您可以删除.gitignore文件并重新创建它。