Gitignore与目录问题

时间:2012-09-12 15:32:13

标签: git version-control

我一直遇到.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索引以停止跟踪文件。但由于某种原因,这种情况不会发生,我不知道还有什么可能是错的。

1 个答案:

答案 0 :(得分:2)

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

!*/

这意味着应该保留项目根目录下的所有文件夹。很久以前,我完全理解git是如何工作的。它的目的是保留某些文件夹,但只是空,没有内容。但这就是上面的规则,而这条规则并不需要在那里。

因此删除该行并执行$ git rm --cached node_modules就可以了。该命令都将其从暂存区域中删除,然后更新索引,这样您就不必运行第二个命令$ git update-index --assume-unchange