IDE 里突然看到类文件 "红色消失" 并提示 deleted from file system,
99% 不是 Git 主动删的,而是 Git + IDE 对长路径支持不足 导致 文件被"误判"不存在 。
按下面 4 步一次性解决:
- 确认文件物理上还在
打开系统资源管理器 / Finder,直接导航到项目根,
手工逐层点进最深目录 → 若能看到 .java 文件,说明 只是 IDE 索引丢了。
- Windows:立即开"长路径"支持
Win10/11 默认关闭 260 字符限制,Git 和 IDEA 都要开:
-
Git (>=2.35)
管理员 PowerShell:
powershellgit config --global core.longpaths true -
系统策略
组策略 → 计算机配置 → 管理模板 → 系统 → 文件系统 →
启用 "启用 Win32 长路径" → 重启。
- IDE 重新扫描 + 清缓存
- File → Invalidate Caches → 勾选 "Clear file system cache and Local History" → Restart
- 重启后 File → Synchronize 或点右上角 Refresh 图标,消失的文件会重新变绿。
- Git 还原"被删"记录(若已 commit)
如果手抖点了 "Delete from Git",一键找回:
bash
git log --diff-filter=D --summary -1 # 看被删的文件路径
git checkout HEAD~1 -- path/to/MissingFile.java
再刷新 IDE,文件即恢复并重新加入版本控制。
- 终极预防:缩短路径
- 把项目放到 磁盘根目录 ,如
D:\ws\myproject而非C:\Users\xxx\VeryLongCompanyName\very-long-repo-name\... - 使用 Git 子模块 或 虚拟盘符 (
subst W: D:\ws) 把深层目录映射成短盘符。
总结
文件还在 → 开 core.longpaths → Invalidate Caches 重启 → 手动 git checkout 找回即可。