git stash在phpstorm中需右键或菜单触发,无默认快捷键;stash后须手动show stashes查看,apply不删除stash而pop会删除且可能冲突;stash不随分支切换自动恢复,仅本地存储。

Git Stash 在 PhpStorm 里到底怎么触发
不是所有“暂存”操作都叫 git stash —— PhpStorm 的 UI 把它藏在了右键菜单和工具栏两个地方,而且默认快捷键不显示,容易以为功能缺失。
实操建议:
- 右键点击项目根目录或任意已追踪文件 → 选 Git → Repository → Stash Changes…
- 或者点顶部菜单栏 VCS → Git → Stash Changes…
- 想用快捷键?默认没绑定,需手动设:进入
Settings → Keymap,搜Stash Changes,右键添加快捷键(比如Ctrl+Shift+T) - 注意:只有“已修改但未暂存”的文件才会被 stash;如果文件已
git add过,stash 会包含 staging 区状态(加-u才含未跟踪文件)
为什么点了 Stash 却看不到 stash 列表
PhpStorm 不自动打开 stash 面板,也不在提交窗口里显示历史 stash,你得主动调出来,否则以为没成功。
常见错误现象:
- 点了
Stash Changes…→ 输入消息 → 点 OK → 文件没了,但找不到 stash 去哪了 - 在
Log或Commit窗口翻半天,没看到 stash 分支
实操建议:
- 打开 VCS → Git → Show Stashes(或按
Ctrl+Shift+A搜Show Stashes) - 面板里显示的是本地仓库的 stash 列表,每条带时间、分支名、备注,双击可预览差异
- 别指望在
Git Tool Window → Log里看到 stash —— 它们不在 commit 图里,是独立结构
Apply 和 Pop 的区别在哪,什么时候该用哪个
Apply 是“复制一份 stash 内容打到当前工作区”,Pop 是“Apply + 删除该 stash”。多数人直接 Pop,但某些场景 Apply 更安全。
使用场景与风险:
- 多个 stash 时,想先试一个再决定是否删,用
Apply;确认没问题再手动右键删 stash - Pop 失败(比如冲突)会导致 stash 仍保留,但工作区卡在冲突状态 —— 这时候你得自己
git stash drop或从 UI 删除 - 如果当前分支和 stash 来源分支不同,Apply 可能应用不全(尤其有重命名/删除文件时),PhpStorm 不提示,只静默跳过
- stash 里含未跟踪文件(
git stash -u)?PhpStorm 的 Apply 默认不恢复它们,得勾选对话框里的Include untracked files
Stash 后切换分支再回来,为什么文件没自动恢复
这是最常被误解的一点:stash 不是“自动保存快照并绑定分支”,它只是堆栈,和当前分支无关。切分支不会触发任何 stash 操作。
性能与行为细节:
- stash 存在本地
.git/refs/stash,不上传远程,也不随git fetch同步 - PhpStorm 不监听分支切换事件来提醒你有 stash 待处理 —— 它不会弹窗、不会标红、不会高亮
- 如果你在
feature/loginstash 了一堆改,切到main改完再切回feature/login,stash 还在那,但你得自己手动Show Stashes → Apply - 小技巧:在 Terminal 里执行
git stash list,比依赖 UI 更可靠;尤其当 PhpStorm 卡顿或 Git 插件异常时
真正容易被忽略的是:stash 不解决分支隔离问题,它只是临时避让。频繁靠 stash 切换上下文,往往说明工作流该拆更小的分支或用 git worktree。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










