webstorm 可通过 local history 或 git 恢复误删文件,因其自动记录文件变更快照或依赖版本提交;local history 保存于 .idea/localhistory/,默认保留5天,需文件曾被索引;git 恢复要求文件曾被暂存或提交。

WebStorm 本身不保存文件快照,但能从本地历史(Local History)或版本控制(如 Git)中找回误删的文件,前提是删除前文件曾被 WebStorm 索引过或已提交/暂存。
为什么删了还能找回来?
WebStorm 会在后台自动维护 Local History —— 它不是 Git,而是基于文件系统变更的轻量快照,每分钟、每次显式操作(如保存、重构)都会记录。只要文件曾出现在项目目录中且 WebStorm 正常运行过,大概率有迹可循。
注意:Local History 存在本地磁盘(.idea/workspace.xml 不管它,实际在 $PROJECT_DIR$/.idea/localHistory/),重启 IDE 不影响;但它不会备份未被 WebStorm 打开/索引过的文件,也不会保留超过 5 天的旧记录(默认策略)。
从 Local History 恢复已删除的文件
这是最常用、最快捷的方式,适用于刚删不久、文件未被 Git 跟踪或尚未提交的情况。
- 右键点击该文件**原所在目录**(比如删了
src/utils/date.js,就右键src/utils/文件夹)→ 选择Local History→Show History - 在弹出窗口中,找时间戳早于删除操作的条目(通常带 “External change” 或 “Deleted” 标记)
- 选中某条记录 → 右键 →
Revert:这会把该目录下所有当时存在的文件恢复到那个时间点的状态(包括已删的) - 如果只想恢复单个文件,可在历史列表中展开目录树,定位到具体文件名 → 右键 →
Revert
⚠️ 坑点:Revert 是覆盖写入,若当前目录已有同名新文件,会被直接替换。建议先备份当前工作区,或改用 Copy Path From Revision 导出副本比对。
从 Git 仓库恢复(更可靠,但依赖提交习惯)
如果文件曾被 git add 过或已提交,Git 是更权威的来源。WebStorm 集成 Git,操作比命令行更直观:
- 打开
Git工具窗口(Alt+9或底部状态栏点击分支名) - 切换到
Log标签 → 在提交历史中找到包含该文件的最近一次提交 - 右键该提交 →
Get from Repository...→ 勾选你要恢复的文件(支持多选)→OK - 如果文件只是
git rm但没提交,去Changes标签页的Local Changes区域,找到已删文件(显示为红色),右键 →Rollback
⚠️ 坑点:若文件从未 git add,Git 无法感知它存在,Rollback 和 Log 都找不到——这时候只能靠 Local History 或系统回收站(Windows/macOS)。
恢复失败时的补救线索
如果上述都无效,别急着重写:
- 检查系统回收站 / 废纸篓:WebStorm 删除文件时默认调用系统 API,多数情况会进回收站(除非用了
Shift+Delete或配置了“跳过回收站”) - 搜索
.idea/localHistory/目录下的时间戳文件:手动打开对应日期的.xml快照(用编辑器查看),里面是纯文本格式的文件内容快照,可复制粘贴还原 - 确认是否启用了
Safe Write(设置 → Appearance & Behavior → System Settings →Use "safe write"):开启后,保存其实是“写新+原子替换”,临时文件可能残留在系统临时目录中(路径因 OS 而异,不推荐主动翻找)
真正难恢复的情况,往往是文件创建后从未保存、未被 WebStorm 打开、也未加入 Git,且系统回收站已被清空——这种“三无”文件,IDE 无能为力。日常建议:新建文件后立刻 Ctrl+S,并养成 git add -N 或至少 git status 的习惯。











