VSCode怎么使用Git Stash暂存_VSCode暂存代码修改操作教程【实用】

千明吖_5715

千明吖_5715

2026-04-14

665人浏览

原创

VSCode的Git stash功能默认只处理已跟踪文件,不包含新建未add文件;需精细控制(如仅stash staged、含untracked)必须用终端执行git stash push命令。

vscode怎么使用git stash暂存_vscode暂存代码修改操作教程【实用】

VSCode 的 Git stash 功能能用,但默认只处理已跟踪文件,不 stash 新建未 add 的文件;想精细控制(比如只 stash staged 部分、带 untracked 文件、跳过暂存区),必须切终端手动执行 git stash push 命令。

怎么触发 stash:三个入口,效果有差异

VSCode 提供三种调用 stash 的方式,但底层行为不完全一致:

  • 命令面板输入 Git: Stash → 执行 git stash push -m "VS Code stash",仅 stash 已跟踪文件的全部修改(含未暂存 + 已暂存)
  • 源代码管理视图(Ctrl+Shift+G)→ 点右上角 ⋯ → Stash Changes → 同样执行默认 push,但会弹出可编辑的描述框
  • 右键某个已修改文件 → Stash Changes → 行为同上,不是只 stash 该文件,而是 stash 全局所有修改

注意:这三个入口都不支持 -S(只 stash staged)、--include-untracked 或 -u(含 untracked)等参数,需要就得开终端。

为什么新文件没被 stash?如何让它进去

VSCode 默认忽略未跟踪(untracked)文件,哪怕你刚新建了一个 utils.js 并写了几十行,Git: Stash 也不会把它收进去——这是 Git 本身的设计,VSCode 只是忠实地封装了默认行为。

  • 临时解决:在终端运行 git stash push -u -m "with untracked",-u 参数强制包含未跟踪文件
  • 长期设置:VSCode 设置中搜索 git.untrackedChanges,改为 all,之后图形化 stash 就会自动带上新建文件(但依然不支持 -S 或冲突时精细跳过)
  • 警告:如果新建文件里有敏感配置或本地密钥,-u 会一并 stash,切记检查

stash 后怎么恢复?pop 和 apply 别混用

恢复操作有两个常用命令,行为关键不同:

GitHub一键发布助手(专业版)
GitHub一键发布助手(专业版)

本地项目发布到GitHub的完整工作流助手。自动执行:安全检查(.gitignore、排除敏感.env/凭据文件)、补齐开源文件(LICENSE、.gitignore)、git init/commit/branch、创建远程仓库、首次推送、可选打tag。支持git filter-repo历史敏感信息重写、force push、tag管理。Windows下走Credential Manager自动认证。触发词:"发布到GitHub"、"上传到github"、&quot

下载
  • Git: Pop Stash → 执行 git stash pop,应用最近一条 stash 并从栈中删除它。如果应用后产生冲突,stash 不会自动删掉,但工作区已脏,需手动解决再 git add / git stash drop
  • Git: Apply Stash → 执行 git stash apply,只应用不删除,适合“先看看改得对不对”,确认无误再手动 git stash drop stash@{0}
  • 查看 stash 列表用 Git: Show All Stashes,列表格式是 stash@{0}: On main: xxx,数字越小越新;按 Delete 键可删选中项

别在合并进行中或存在冲突时点 stash 按钮——VSCode 会直接禁用,这不是 bug,是保护机制,强行绕过可能破坏索引状态。

哪些场景必须切终端?

图形界面省事,但遇到这几类需求,VSCode 内置 stash 就不够用了:

  • 只想 stash 已暂存(staged)部分,保留未暂存修改继续调试 → 必须 git stash push -S
  • 要 stash 一部分修改、保留另一部分(比如只 stash bugfix,留着实验性 feature)→ 得先 git add -p 精确暂存,再 git stash push -S
  • stash 后想看内容差异 → VSCode 不提供预览,终端跑 git stash show -p stash@{0} 最直接
  • 批量 drop 多个旧 stash → 图形界面只能逐个删,终端用 git stash clear 或 git stash drop stash@{1} stash@{2}

真正容易被忽略的是:stash 不是备份,它依赖当前分支的 HEAD 状态。如果在 stash 之后又做了提交、变基或切换到另一个 diverged 分支再 pop,很可能出现意料外的冲突或内容错位——别把它当 git commit 的轻量替代品。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode git

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

6927

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2848

6

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

2023.11.13

3551

4

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.29

1065

3

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4976

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1455

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1918

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

10503

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

1060

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程