Node.js 如何防止git commit删除文件

Node.js 如何防止git commit删除文件,node.js,git,angular-fullstack,Node.js,Git,Angular Fullstack,我刚刚做了一个git提交,它似乎从我的node_modules文件夹中随机删除了一些文件。有人有这个问题吗 要明确的是,我最新的git提交被删除了 delete mode 100644 node_modules/grunt-google-cdn/node_modules/google-cdn/node_modules/cdnjs-cdn-data/external/cdnjs.json delete mode 100644 node_modules/grunt-node-inspector/

我刚刚做了一个git提交,它似乎从我的node_modules文件夹中随机删除了一些文件。有人有这个问题吗

要明确的是,我最新的git提交被删除了

delete mode 100644 node_modules/grunt-google-cdn/node_modules/google-cdn/node_modules/cdnjs-cdn-data/external/cdnjs.json

 delete mode 100644 node_modules/grunt-node-inspector/node_modules/node-inspector/front-end-node/Images/src/favicon.eps

 delete mode 100644 node_modules/moment/min/tests.js

 delete mode 100755 node_modules/requirejs/bin/r.js

我以前从未见过这种情况,我也无法理解为什么会发生这种情况。这会阻止我构建应用程序进行部署。有人知道这是怎么发生的吗?以及将来如何防止这一情况发生吗?

我的期望是这些文件在某个时候被删除了(我不能说是通过什么机制删除的)

如果您使用的是Git 2.0或更高版本,当您键入
Git add.
时,您会将删除的文件暂存以提交
git add.
基本上是说“我想在这个repo中进行所有更改”,在本例中包括删除文件

在以前的版本中,行为是不同的(我只是针对Git1.9和2.6.3验证了不同的行为)

我只做了git添加。事先

因此,您要求Git将所有内容放在
(当前目录)中。这:

e、 g.指定
dir
不仅会记录在工作树中修改的文件
dir/file1
,还会记录添加到工作树中的文件
dir/file2
,还会记录从工作树中删除的文件
dir/file3

如果这些文件被某个非git进程删除,并且随后运行了
git add.
,然后提交,则删除操作将被提交


比较git add和的文档显示,此行为在版本2中发生了更改。

要告诉git忽略提交中删除的文件并提交所有其他更改,请执行以下操作:

git add --ignore-removal .

git commit
本身并不能告诉你使用什么。什么是提交阶段?你在任何文件上运行过
git-rm
吗?@Chris,我只运行了git-add。您使用的Git版本是什么?@DanielMann如何找到我的Git版本?我注意到的唯一原因是咕噜咕噜的谷歌cdn打破了我的习惯build@DanielManngit版本2.2.0感谢您的建议,但我没有接触这些文件。他们在一个不知名的地方做一些与开发无关的事情,除了可能有一个错误导致我不得不查找他们。关于它们可能被篡改的机制还有其他建议吗?@rashadb抱歉,我无法推测是什么改变了你的文件系统。你问为什么要进行删除,现在你知道了。是你上演的。Git没有从您的文件系统中删除它们。这不是一个令人满意的答案,因为我没有对这些文件采取任何特定的操作。我只能猜测这是怎么发生的。