使用 .gitignore 忽略 node_modules
Posted
技术标签:
【中文标题】使用 .gitignore 忽略 node_modules【英文标题】:Ignoring node_modules using .gitignore 【发布时间】:2018-06-22 18:41:46 【问题描述】:我使用 npm 开始了一个项目,添加了一些依赖项,然后初始化了存储库 usign git init
。
我希望目录 node_modules
被 git 忽略,所以我像这样将它添加到 .gitignore
文件中。
.gitignore
node_modules/
当然因为node_modules
是在git init
之前添加的,所以还是被识别为要跟踪的目录。
所以我删除了它,使用了以下命令(针对类似问题的建议)
git rm -r --cached .
git add .
git commit -m ".gitignore should now work"
然后使用npm install
重新安装npm依赖
在此之后,我希望目录 node_modules
最终被忽略。
相反,如果我输入 git status
我会得到
Untracked files:
(use "git add <file>..." to include in what will be committed)
node_modules/
为什么?
【问题讨论】:
这正是您使用的序列吗?我无法重现此结果。 @DanLowe 是的,我已经检查了两次和三次,但是没有,它不起作用。这对我来说看起来很荒谬。 我也无法重现这个。尝试了以下步骤:git init; echo "Myfile" > myfile; mkdir node_modules && echo "module" > node_modules/module.txt; git commit -m "init"; echo "node_modules" > .gitignore; rm -rf node_modules/; git rm -r --cached .; git add .; git commit -m ".gitignore should now work"; mkdir node_modules; echo "module" > node_modules/mod.txt;
。 git status
在运行这些后给出“在分支主机上没有提交,工作树干净”。
@bless 刚刚尝试再次执行与您相同的操作,但在 git status
之后仍然没有跟踪 node_modules/
git rm -r --cached .
是我的解决方案。运行此命令后,.gitignore
中的node_modules
运行良好。
【参考方案1】:
在this question 下,有许多可能修复.gitignore
文件无法正常工作的方法。
在这种情况下,问题是(曾经).gitignore
文件的编码是 UNICODE 而不是 ASCII
【讨论】:
【参考方案2】:尝试以下方法:
从 .gitignore 中移除 node_modules 并保存
删除 node_modules(或将其移至项目目录之外的某个位置)
提交更改(将从 node_modules 中删除大量内容)此步骤将从源代码管理中删除文件。
再次将node_modules添加到.gitignore
提交 gitignore
重新运行 npm install 或恢复 node_modules 目录。
【讨论】:
还是不行,这太可笑了,看起来是个很蠢的问题 为我工作。注意 .gitignore 文件路径。以上是关于使用 .gitignore 忽略 node_modules的主要内容,如果未能解决你的问题,请参考以下文章
解决git中将要忽略的文件加入.gitignore无效的问题