Node.js应用文件与Git仓库神秘丢失的调试方案咨询
Node.js应用使用nodegit时Git仓库及工作目录文件丢失问题
问题现象
- 偶尔出现Git仓库部分文件神秘消失,仓库失效,执行Git命令时会报错:
fatal: not a git repository (or any of the parent directories): .git - 检查
.git目录,仅剩余以下内容(正常情况下包含更多文件,如config、HEAD等):total 0 drwxr-xr-x 2 elsa wheel 64 May 12 16:55 hooks drwxr-xr-x 2 elsa wheel 64 May 12 16:55 info drwxr-xr-x 12 elsa wheel 384 May 12 16:55 objects drwxr-xr-x 3 elsa wheel 96 May 12 16:55 refs - 工作目录也存在文件丢失情况:丢失的都是应用读取过(创建后未更新)的文件,未丢失的是刚创建、尚未被应用读取的文件。
应用操作细节
- 应用仅对工作目录进行文件读写操作,从不主动删除文件,文件系统操作依赖Node.js的
fs模块 - Git相关操作完全由nodegit内部处理,应用从不直接访问
.git目录
触发相关场景
- 问题数月内出现3-4次,无法准确定位或稳定复现
- 最近一次发生在MacBook睡眠时应用仍在运行,唤醒后出现报错
- 开发过程中频繁使用nodemon重启应用,也经常让MacBook进入睡眠模式
当前排查思路
- 由于
.git目录和工作目录均出现文件丢失,怀疑可以排除nodegit的问题 - 计划尝试使用
fs_usage工具监控文件系统操作,希望获取更多调试建议
内容的提问来源于stack exchange,提问作者katboo
相关产品推荐
相关产品推荐

