恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Git Stash实战——临时保存工作进度的终极指南
首页
资讯中心
/
Git Stash实战——临时保存工作进度的终极指南
Git Stash实战——临时保存工作进度的终极指南
发布时间:2026/8/7 3:42:48
一、什么是git stashgit stash的作用是将当前工作区和暂存区中尚未提交的修改保存到堆栈中让工作区恢复到“干净状态”与最近一次提交一致。核心价值不会污染提交历史stash保存在特殊的堆栈区域不会出现在git log中更精细的存储控制可以选择只存储工作区变更或同时存储暂存区多进度管理能力支持保存多个工作进度并通过索引管理二、基础用法2.1 暂存当前修改# 基本用法保存所有未提交的修改 git stash # 带描述信息推荐 git stash save 正在开发登录功能未完成 # Git 2.13 简写 git stash push -m 修复登录页面的样式效果将工作区和暂存区的修改保存到栈中恢复工作目录到最后一次提交的状态。2.2 查看暂存列表git stash list stash{0}: WIP on master: abc1234 添加新功能 stash{1}: On feature: xyz5678 修复样式问题2.3 恢复暂存的修改# 恢复最近一次暂存保留暂存记录 git stash apply # 恢复并删除暂存记录 git stash pop # 恢复指定暂存 git stash apply stash{1} git stash pop stash{2}区别apply恢复后保留暂存记录pop恢复后删除暂存记录-36。2.4 删除暂存记录# 删除指定暂存 git stash drop stash{1} # 清空所有暂存 git stash clear三、实战场景场景1切换分支前保存工作# 当前在feature分支工作未完成但需要切换到master git stash save feature分支未完成代码 # 切换到master处理紧急事务 git checkout master # 处理完紧急事务 # 切回feature分支恢复工作 git checkout feature git stash pop场景2误在错误分支上开发# 错误在master上开发了新功能 # 保存当前修改 git stash # 切换到正确的分支 git checkout feature # 恢复修改 git stash pop场景3多次stash的管理# 第一次暂存 git stash save 功能A开发一半 # 第二次暂存在功能A的基础上继续开发 git stash save 功能A继续开发 # 查看所有暂存 git stash list # 恢复第二次暂存 git stash pop stash{0} # 恢复第一次暂存需要先提交第二次的修改 git stash pop stash{1}四、高阶技巧4.1 只暂存工作区保留暂存区git stash --keep-index使用场景已经git add了部分文件准备提交但工作区还有未完成的修改不想提交。4.2 包含未跟踪文件默认情况下git stash不会保存未跟踪文件如新创建但未git add的文件。# 包含未跟踪文件 git stash -u # 包含未跟踪文件并忽略.gitignore git stash -a4.3 交互式暂存只暂存部分修改# 交互式选择要暂存的修改块 git stash -pGit会按hunk块展示修改让你逐块选择y收起当前块n跳过当前块s把当前块继续拆小e手动编辑当前块4.4 基于stash创建分支使用场景stash的修改与当前分支差异较大直接apply可能产生冲突。4.5 查看stash内容# 查看最近一次暂存的摘要 git stash show # 查看完整补丁内容 git stash show -p # 查看指定暂存 git stash show stash{1}五、常见踩坑提醒问题解决方案新建文件未add直接stash丢失先git add或用git stash -upop后产生冲突手动解决冲突或使用apply先预览stash太多难以管理每次save时加描述信息长期保留修改建议创建分支并提交而非依赖stash六、总结git stash是Git工作流中不可或缺的工具-。掌握它你就能在开发过程中随时切换上下文而不必担心丢失未完成的工作。核心命令速查操作命令暂存修改git stash / git stash save 描述查看列表git stash list恢复保留git stash apply恢复删除git stash pop删除记录git stash drop清空所有git stash clear感谢浏览希望这篇博客对你有所帮助~(^ - ^)~