Git && IDE 对长路径支持不足 导致 文件被“误判”不存在

IDE 里突然看到类文件 "红色消失" 并提示 deleted from file system,

99% 不是 Git 主动删的,而是 Git + IDE 对长路径支持不足 导致 文件被"误判"不存在 。

按下面 4 步一次性解决:


  1. 确认文件物理上还在

打开系统资源管理器 / Finder,直接导航到项目根,
手工逐层点进最深目录 → 若能看到 .java 文件,说明 只是 IDE 索引丢了。


  1. Windows:立即开"长路径"支持

Win10/11 默认关闭 260 字符限制,Git 和 IDEA 都要开:

  • Git (>=2.35)

    管理员 PowerShell:

    powershell 复制代码
    git config --global core.longpaths true
  • 系统策略

    组策略 → 计算机配置 → 管理模板 → 系统 → 文件系统 →

    启用 "启用 Win32 长路径" → 重启。


  1. IDE 重新扫描 + 清缓存

  • File → Invalidate Caches → 勾选 "Clear file system cache and Local History" → Restart
  • 重启后 File → Synchronize 或点右上角 Refresh 图标,消失的文件会重新变绿。

  1. Git 还原"被删"记录(若已 commit)

如果手抖点了 "Delete from Git",一键找回:

bash 复制代码
git log --diff-filter=D --summary -1          # 看被删的文件路径
git checkout HEAD~1 -- path/to/MissingFile.java

再刷新 IDE,文件即恢复并重新加入版本控制。


  1. 终极预防:缩短路径

  • 把项目放到 磁盘根目录 ,如
    D:\ws\myproject 而非 C:\Users\xxx\VeryLongCompanyName\very-long-repo-name\...
  • 使用 Git 子模块 或 虚拟盘符 (subst W: D:\ws) 把深层目录映射成短盘符。

总结

文件还在 → 开 core.longpaths → Invalidate Caches 重启 → 手动 git checkout 找回即可。

相关推荐
挖掘狂人14 小时前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger15 小时前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程16 小时前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk16 小时前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风18 小时前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人1 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安2 天前
git学习记录01
linux·git·学习
lingchen19062 天前
版本控制 Git源代码项目管理
git
虫无涯2 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆2 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git