我一直遇到.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索引以停止跟踪文件。但由于某种原因,这种情况不会发生,我不知道还有什么可能是错的。
答案 0 :(得分:2)
我再次仔细检查了gitignore文件后找到了答案。事实证明我的最后一条规则是:
!*/
这意味着应该保留项目根目录下的所有文件夹。很久以前,我完全理解git是如何工作的。它的目的是保留某些文件夹,但只是空,没有内容。但这就是上面的规则,而这条规则并不需要在那里。
因此删除该行并执行$ git rm --cached node_modules
就可以了。该命令都将其从暂存区域中删除,然后更新索引,这样您就不必运行第二个命令$ git update-index --assume-unchange
。