如何防止git commit删除文件

时间:2015-12-09 02:40:28

标签: 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/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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

  

我只做了git add。预先

所以你要求Git在.(当前目录)中展示所有内容。这includes deleted files

  

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

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

比较version 1.9.2version 2.0.0 git-add的文档显示此版本在第2版中已更改。

答案 2 :(得分:0)

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

git add --ignore-removal .