news 2026/7/14 22:43:16

Day 42:Git的高级技巧:使用Git的stash管理未提交的更改

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 42:Git的高级技巧:使用Git的stash管理未提交的更改

Day 42:Git的高级技巧:使用Git的stash管理未提交的更改

“你有没有经历过这样的’崩溃时刻’:你正在写一个重要的功能,突然收到一个紧急的bug修复请求,结果你还没提交的代码就’消失’了?或者你正在修改一个文件,突然发现需要切换到另一个分支,但又不想提交未完成的工作?别担心,Git的stash就是你的’工作暂存区’!”

🌟 为什么stash是Git的"工作暂存区"?

想象一下,你正在厨房做饭,突然电话响了,需要出去接电话。你会把正在炒的菜放在一边,等接完电话再回来继续炒。Git的stash就是你的’工作暂存区’,它让你可以暂时保存未提交的更改,以便你可以切换到其他任务,之后再回来继续工作。

重点:stash是Git的’工作暂存区’,它允许你暂时保存未提交的更改,以便你可以切换分支或进行其他操作,之后再恢复这些更改

在GitCode上,stash是本地功能,不会自动推送到远程仓库。它只保存在你的本地Git仓库中,让你可以安全地切换工作环境。

🧠 核心知识点:stash的类型与用途

Git stash有多种类型:

类型命令说明适用场景
默认stashgit stash保存所有未提交的更改临时切换工作环境
带消息的stashgit stash save "message"保存带描述的更改便于识别不同的stash
带路径的stashgit stash -p保存特定文件的更改只保存部分更改
临时stashgit stash -u保存未跟踪的文件保存未跟踪的文件

关键点

  1. stash保存的是"未提交的更改",不是提交
  2. stash会保存工作区和暂存区的更改
  3. stash是本地功能,不会推送到远程仓库
  4. stash列表会保存在本地,直到你手动删除

小贴士:在GitCode上,stash不会显示在仓库的"提交历史"中,它只存在于你的本地环境中。

💻 AtomGit(GitCode)实操步骤

🛠 步骤1:创建测试项目

# 1. 创建项目mkdirgit-stash-demo&&cdgit-stash-demogitinitecho"# Git Stash Demo">README.mdgitaddREADME.mdgitcommit-m"Initial commit"

🛠 步骤2:模拟未完成的工作

# 1. 修改文件echo"Feature 1">>README.md# 2. 添加到暂存区gitaddREADME.md# 3. 创建新分支gitbranch feature-1

🛠 步骤3:使用stash保存更改

# 1. 保存未提交的更改gitstash# 2. 查看stash列表gitstash list

执行结果示例:

stash@{0}: WIP on feature-1: 1a2b3c4 Add feature 1

🛠 步骤4:切换分支并恢复stash

# 1. 切换到主分支gitcheckout main# 2. 恢复stashgitstash apply

🛠 步骤5:查看stash列表

# 查看stash列表gitstash list# 删除stashgitstash drop stash@{0}

🌰 实战案例:处理紧急bug

# 1. 创建项目mkdirbug-fix-demo&&cdbug-fix-demogitinitecho"# Bug Fix Demo">README.mdgitaddREADME.mdgitcommit-m"Initial commit"# 2. 开发功能echo"Feature 1">>README.mdgitaddREADME.mdgitcommit-m"Add feature 1"# 3. 发现bug,需要紧急修复gitbranch bugfixgitcheckout bugfix# 4. 保存未完成的工作gitstash# 5. 修复bugecho"Bug fixed">>README.mdgitaddREADME.mdgitcommit-m"Fix bug"# 6. 切换回feature分支gitcheckout feature-1# 7. 恢复stashgitstash apply# 8. 继续开发echo"Feature 1 continued">>README.mdgitaddREADME.mdgitcommit-m"Continue feature 1"

❌ 常见问题避坑指南

🔴 问题1:git stash保存了未跟踪的文件

原因:默认的git stash不会保存未跟踪的文件。

解决

# 使用-u选项保存未跟踪的文件gitstash-u

🔴 问题2:stash应用后,修改的文件没有被正确恢复

原因:stash应用后,如果文件被修改,可能会发生冲突。

解决

  1. 在应用stash前,确保文件没有被修改
  2. 如果有冲突,使用git checkout --theirsgit checkout --ours解决
  3. 或者使用git stash apply --index来保留暂存区的状态

🔴 问题3:stash列表太多,难以管理

原因:多次使用stash,导致stash列表很长。

解决

  1. 定期清理stash:git stash drop stash@{n}
  2. 为stash添加描述:git stash save "message"
  3. 使用git stash list查看所有stash

🔴 问题4:stash应用后,想保留stash

原因:默认的git stash apply不会删除stash。

解决

# 保留stashgitstash apply# 如果想删除stash,使用gitstash drop

💡 Stash管理的高级用法

📌 1. 保存特定文件的更改

# 保存特定文件的更改gitstash-p

执行后,Git会逐个询问你是否要保存每个文件的更改。

📌 2. 保存带描述的stash

# 保存带描述的stashgitstash save"Add feature 1"

📌 3. 查看stash的详细信息

# 查看stash的详细信息gitstash show stash@{0}

📌 4. 将stash保存为提交

# 将stash保存为提交gitstash applygitcommit-m"Restored from stash"

🎯 今日小结

项目说明
stash是什么Git的’工作暂存区’,临时保存未提交的更改
关键命令git stashgit stash listgit stash applygit stash dropgit stash save
最佳实践1. 使用git stash save添加描述 2. 定期清理stash列表 3. 在应用stash前确保文件没有被修改
常见场景1. 切换分支前保存更改 2. 处理紧急bug 3. 临时处理其他任务

📅 明日预告:Day 43:Git的高级技巧:使用Git的rebase简化提交历史

“明天我们将深入探讨如何使用Git的rebase简化提交历史,让你的项目历史更加清晰!”


✨ 今日金句:stash不是’工作中的暂停键’,而是’工作中的加速器’。用好Git stash,让你的开发工作流从’手忙脚乱’升级到’游刃有余’!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 20:17:53

HuggingFace镜像网站加速Sonic模型下载的实操方法

HuggingFace镜像网站加速Sonic模型下载的实操方法 在数字人内容创作日益火热的今天,越来越多开发者和内容创作者希望快速构建“会说话的虚拟形象”。尤其是腾讯与浙江大学联合推出的 Sonic 模型——这款轻量级、高精度的口型同步工具,凭借“一张图一段音…

作者头像 李华
网站建设 2026/7/14 20:18:02

队列系统设计:应对高峰时段大量Sonic生成请求

队列系统设计:应对高峰时段大量Sonic生成请求 在电商大促、节日营销或直播预告等关键节点,数字人视频的生成需求往往会在短时间内激增。用户期望快速获得一张静态照片与一段语音合成的“会说话”的虚拟形象,而背后的服务若无法承受瞬时高并发…

作者头像 李华
网站建设 2026/7/14 20:17:22

吐血推荐9个AI论文写作软件,本科生搞定毕业论文!

吐血推荐9个AI论文写作软件,本科生搞定毕业论文! AI 工具让论文写作不再难 在如今这个信息爆炸的时代,撰写一篇高质量的毕业论文对本科生来说早已不是一件轻松的事情。从选题到查资料,再到撰写和修改,每一个环节都可能…

作者头像 李华
网站建设 2026/7/10 3:34:01

Decentraland土地所有者雇佣Sonic数字人看房

Decentraland土地所有者雇佣Sonic数字人看房 在虚拟世界日益成为数字生活核心场景的今天,元宇宙中的“不动产”运营正面临一场静默的变革。Decentraland作为去中心化虚拟空间的先行者,其LAND地块不仅是稀缺资产,更承载着品牌展示、社交互动与…

作者头像 李华
网站建设 2026/7/10 4:54:30

Sonic数字人模型实战:音频驱动人像嘴形精准对齐技巧

Sonic数字人模型实战:音频驱动人像嘴形精准对齐技巧 在短视频内容爆炸式增长的今天,一个“会说话”的数字人可能只需要一张照片和一段录音就能诞生。这不再是科幻电影的情节——以Sonic为代表的轻量级口型同步模型,正在让高质量数字人生成变得…

作者头像 李华