WebStorm中“暂存文件”实为误称,正确概念是Scratch(草稿)、Stash(Git暂存)或Shelve(搁置):Scratch是本地临时代码片段,不参与Git;Stash由Git管理,用于跨分支保存全部未提交更改;Shelve是IDE本地补丁,支持选择性暂存部分文件。

WebStorm 里没有“暂存文件”这个概念,你真正想找的是 Scratches(草稿)或 Stashes(Git 暂存)——两者完全不互通,不能混用。
Scratch 文件不是 Git 暂存,只是本地临时代码片段
Scratch 是 WebStorm 自带的轻量级草稿区,不参与 Git 版本控制,也不和任何仓库关联。它适合写测试代码、临时调试逻辑、记笔记式片段,比如快速验证一个 Array.prototype.flatMap 行为,或者试一段正则表达式。
- 创建方式:按
Ctrl+Alt+Shift+Insert(Windows/Linux)或Cmd+Option+Shift+Insert(macOS),选语言类型(如 JavaScript、JSON、Plain Text) - 文件名默认是
scratch_1.js这类,保存后存在 IDE 配置目录下(路径类似~/.WebStorm2026.x/config/scratches/),不会出现在项目文件树中 - 不能被
git add或git commit捕获;删掉项目目录也不会丢,但重装 WebStorm 或清配置就会消失 - 支持语法高亮、基础补全、运行(对可执行类型如 JS/Python),但无调试、无依赖解析、无模块导入能力
想临时存修改?别用 Scratch,该用 Git Stash 或 Shelve
如果你当前有一堆未提交的改动,又想切分支或拉新代码,Scratch 完全帮不上忙——它不保存你正在编辑的源文件内容。
- 真要走 Git 流程:必须点顶部菜单
Git → Stash Changes,勾选Include untracked files才能暂存新文件;git stash list在终端可见,git stash pop也能在命令行恢复 - 只想存部分文件、反复应用/撤销、不共享给协作者:用
Shelve——在 Commit 工具窗口(Alt+0)右键文件或变更列表,选Shelve Changes,可取消勾选任意文件 - 误把
Shelve当Stash是高频错误:Commit 窗口右键菜单里那个“Shelve Changes”不是 Git 命令,WebStorm 不会在git log或git stash list里留下痕迹
Scratch 文件怎么命名和管理才不乱
默认生成的 scratch_1.js 很难识别用途,时间一长自己都忘了写过啥。
- 创建后立刻重命名:右键
scratch_1.js→Refactor → Rename,改成带上下文的名字,比如regex_test_url_parser.js - 同一类草稿建议统一放一个目录:虽然 Scratch 不在项目里,但你可以手动在项目根建个
dev-scratch/目录,把导出的草稿文件(File → Save As)存进去,再加.gitignore排除 - 不建议往 Scratch 里粘大段业务代码:它没版本历史、没 diff 对比、不支持多光标编辑同步,容易写到一半发现逻辑要重构,结果回溯困难
Scratch 的边界很清晰:它是编辑器内的便签纸,不是代码暂存区。真正要隔离工作状态,得靠 Git 机制本身——Stash 解决跨分支临时保存,Shelve 解决 IDE 内精细控制。混淆这两者,后期找回改动的成本会远高于多点两次鼠标。


















