3

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

需要明确的是,我最新的 git commit 已删除

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

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

4

3 回答 3

1

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

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

这种行为在以前的版本中有所不同(我只是针对 Git 1.9 和 2.6.3 验证了不同的行为)。

于 2015-12-09T02:55:05.090 回答
1

我只做了 git add 。预先

所以你要求 Git 在.(当前目录)中暂存所有内容。这包括已删除的文件

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

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

比较1.9.2版和2.0.0版的文档git-add表明,此行为在版本 2 中发生了变化。

于 2015-12-09T02:55:37.383 回答
1

告诉 git 忽略提交中已删除的文件并提交所有其他更改:

git add --ignore-removal .
于 2019-03-26T14:44:28.697 回答