能,但需满足文件曾被 PhpStorm 索引且未超5天保留期;右键原所在目录→Local History→Show History→选删除前快照→Revert恢复。

PhpStorm 本地历史记录能找回刚删的文件吗
能,但只限于文件被删除后尚未执行 git clean 或清空系统回收站、且文件曾被 PhpStorm 索引过(即打开过、编辑过或出现在项目视图中)。本地历史是 PhpStorm 自动维护的元数据快照,不依赖 Git,哪怕项目没初始化仓库也能用。
操作路径:在项目视图中右键点击被删文件**原所在目录** → 选择 Local History → Show History。时间线里会列出该目录的历史状态,找到删除前的时间点,勾选对应条目里的目标文件,点击 Revert 即可恢复。
- 注意:如果整个文件夹被删,必须右键其父目录才能看到历史;右键空白处或根节点无效
- 默认每 10 分钟自动保存一次快照,手动触发可按
Ctrl+Alt+Shift+H(Windows/Linux)或Cmd+Option+Shift+H(macOS) - 本地历史默认保留 5 天,超期自动清理,可在
Settings → Editor → Local History调整
Git 未提交删除时怎么从暂存区或工作区还原
如果文件已执行 git rm 但还没 git commit,它处于“已暂存的删除”状态;如果只是 rm 命令删了且没 git add,则属于“未暂存的删除”。两种情况都可用 Git 恢复,但命令不同。
确认状态:终端运行 git status,看文件是否出现在 deleted: 区域下(已暂存)还是仅显示在 Changes not staged for commit(未暂存)。
立即学习“PHP免费学习笔记(深入)”;
- 未暂存删除:
git checkout -- <file-path></file-path>(如git checkout -- src/Helper.php) - 已暂存删除:
git restore --staged <file-path></file-path>(Git 2.23+),再补上上一条命令;旧版 Git 用git reset HEAD <file-path></file-path>+git checkout -- <file-path></file-path> - 若已
git commit删除,需用git checkout <commit-hash>^ -- <file-path></file-path></commit-hash>回溯上一个提交中的版本
为什么右键文件夹看不到 Local History 选项
常见原因是该目录未被 PhpStorm 视为“项目内容根目录”或被排除(Excluded)了。PhpStorm 只对标记为 Sources、Tests、Resources 等内容根下的目录启用本地历史。
检查方式:右键该文件夹 → Mark Directory as → 确认不是 Excluded;如果是,先取消排除,再重新标记为 Sources。也可在 Project Structure → Modules 中核对源码根路径是否覆盖该目录。
- 被标记为
Excluded的目录完全不参与索引、代码补全和本地历史 - 新创建的空目录默认不会自动生成本地历史,需至少编辑并保存一次其中任意文件才会开始记录
- 如果项目使用 Composer autoload,但
vendor/被设为 Excluded(通常推荐),那里面删的文件就无法通过本地历史恢复
恢复后文件编码或换行符异常怎么办
本地历史恢复时会还原原始字节流,但 PhpStorm 可能按当前项目编码设置重新解析,导致中文乱码或 ^M 符号残留。这不是恢复失败,而是编辑器读取方式不匹配。
解决方法:恢复后立即点击右下角编码标识(如 UTF-8 或 Cp1252)→ 选择 Reload with Encoding... → 尝试 UTF-8 或 GBK(Windows 中文环境常用);若仍有 ^M,说明是 Windows 风格换行符(CRLF)被误读为 LF,此时点击右下角 LF 标签 → 选 Convert line separators to CRLF。
- 长期建议:在
Settings → Editor → Code Style → Line separator统一设为Unix and macOS (\n),避免混用 - Git 用户应配置
core.autocrlf=true(Windows)或input(macOS/Linux),让 Git 自动处理换行符转换
本地历史不是万能备份,它不记录大文件(默认 >1MB 跳过)、不保存被排除目录内容、也不跨机器同步。真要防误删,得靠 Git 提交节奏 + 定期备份项目根目录。


















