3

我一直遇到 .gitignore 没有忽略我的 node_modules 目录的问题。

这是我的 .gitignore 文件:

*~
~*
*.log
images/
images/*
images/**/*

.idea/
.idea/*
import_errors/
output/
output/*
node_modules/
node_modules/*
uploads/
downloads/
tmp/

.DS_Store

!.keep
!*/

我还尝试运行命令来更新 git-index 并从索引中删除文件夹

$ git rm --cached node_modules
fatal: pathspec 'node_modules' did not match any files
$ git update-index --assume-unchanged node_modules
fatal: Unable to mark file node_modules

通常我只会发出这两个命令,但我不断收到这些错误。第一个命令应该取消暂存文件,第二个命令应该更新 git 索引以停止跟踪文件。但由于某种原因,这并没有发生,我不知道还有什么可能是错的。

4

1 回答 1

2

再次仔细检查 gitignore 文件后找到了答案。原来我的最后一条规则是:

!*/

这意味着应该保留项目根目录下的所有文件夹。在我完全理解 git 的工作原理之前,我很久以前就这样做了。它旨在将某些文件夹保留在那里,但只是空的,其中没有内容。但这就是上面的规则的含义,并且不需要该规则。

所以删除那条线并做$ git rm --cached node_modules就可以了。该命令将它从暂存区中删除,然后更新索引,因此您不必运行第二个命令$ git update-index --assume-unchange

于 2012-09-12T16:31:59.913 回答