Git Stash 是 Git 提供的轻量级暂存机制,用于临时保存未提交改动以腾出干净工作区;VS Code 将其图形化,支持 stash、apply、pop、delete 及查看 diff 等操作,兼容命令行,适用于中断开发场景。

VS Code 的 Git Stash 功能,就是帮你把还没准备好提交的改动“暂存起来”,腾出干净的工作区继续其他任务——不提交、不丢弃、随时能拿回来。
什么是 Git Stash?
Stash(藏匿)是 Git 提供的一种轻量级暂存机制。当你正在改代码,突然要切分支修复紧急 bug,或想拉取最新代码但本地有未提交修改时,直接切换或拉取会失败。这时 stash 就派上用场:它把当前工作目录和暂存区的改动打包保存到一个栈里,同时恢复干净的 HEAD 状态。
VS Code 把这个操作图形化了,不用记命令,点几下就能完成。
在 VS Code 里怎么用 Stash?
确保你已打开 Git 源代码管理视图(左侧活动栏第3个图标),且当前项目已初始化 Git 仓库。
- 右键资源管理器中任意已修改的文件 → 选择 Stash Changes…
- 或者点击源代码管理视图顶部的 ⋯(更多操作)→ Stash Changes
- 弹出对话框后,可输入可选描述(比如“调试中途,先切分支”),点击 Stash
成功后,所有未提交的改动消失,状态栏 Git 图标显示 “0” 修改,文件列表变干净——但它们没丢,只是被藏起来了。
如何找回之前 stash 的内容?
回到源代码管理视图,点击顶部 ⋯ → Show All Stashes,就会列出所有 stash 记录(按时间倒序)。每个条目包含描述、时间、改动文件数。
- 点击某条 stash 右侧的 ↻ Apply:把改动重新应用到工作区(可能冲突,需手动解决)
- 点击 ? Delete:删除该 stash(谨慎操作)
- 点击 ➡️ Pop:应用并自动删除该 stash(相当于 Apply + Delete 一步)
如果应用时出现冲突,VS Code 会像合并冲突一样高亮标记,你可以用内置的合并编辑器逐块处理。
几个实用小提示
- stash 默认只保存已跟踪文件的修改;新增的未跟踪文件(untracked)不会被包含——如需一并 stash,右键 stash 时勾选 Include untracked files
- 多次 stash 会形成栈结构(LIFO):最新 stash 在最上面,Pop 默认弹出最近的一次
- 想看某次 stash 具体改了什么?在 stash 列表里点击它,右侧会显示 diff 预览
- 命令行用户注意:VS Code 的 stash 操作和
git stash push/git stash apply完全兼容,两边可混用
基本上就这些。stash 不是替代分支或提交的方案,而是帮你灵活应对“改到一半被打断”的真实开发节奏——用得好,心不慌。










