Git 小技巧:用 `git stash` 把改动藏起来!

Git 小技巧:用 git stash 把改动藏起来!

你有没有遇到这种情况?

正在修改一堆文件,突然要切换分支处理另一个紧急任务,可是又不想 commit......

这时候脑子里只有一个念头:

"我能不能先把这些改动藏起来,等会儿再拿回来?"

没错,这就是 git stash 大显神通的时候!


一、什么是 git stash?

通俗点讲:

git stash 会把你工作区的未提交改动 (包括新增、修改、删除的内容)"临时存起来",

然后让你的工作目录恢复到"干净"的状态。

你可以:

  • 切换分支 💨
  • 拉代码更新 🔄
  • 处理紧急 bug 🔥

等你忙完了,再把刚才"藏起来的改动"拿回来继续改!👌


二、快速上手示例

1. 你在干活:

bash 复制代码
echo "未完成的功能" >> feature.txt

改了一些东西,还没 commit。

2. 突然来了个紧急任务,要切换分支?

这时候你运行:

复制代码
git stash

终端显示:

perl 复制代码
Saved working directory and index state WIP on main: 7f3cabc 添加 hello.txt 文件

你的改动就被"藏起来"了!

运行:

lua 复制代码
git status

输出会显示:工作目录干净!


三、改动去哪儿了?

复制代码
git stash list

你会看到:

less 复制代码
stash@{0}: WIP on main: 7f3cabc 添加 hello.txt 文件

说明你的改动在 stash 里排第一位。


四、怎么拿回来?

复制代码
git stash apply

它会把最新一次 stash 的改动还原回来(不删除 stash)。

或者你想取出并从列表中移除这个 stash,用:

perl 复制代码
git stash pop

⚠️ 注意:apply 会留下 stash 副本,pop 会取出并删除。


五、有多个 stash 怎么办?

你可以用编号:

kotlin 复制代码
git stash apply stash@{1}

六、stash 也可以命名!

方便管理,用这个命令:

arduino 复制代码
git stash save "修复登录页面样式"

再运行:

复制代码
git stash list

你会看到备注内容,比默认的 WIP 更清楚!


七、stash 删除和清空

清理掉某个 stash:

kotlin 复制代码
git stash drop stash@{0}

全部清除:

arduino 复制代码
git stash clear

八、总结小抄

命令 说明
git stash 把当前改动临时存起来
git stash apply 还原最近一次 stash
git stash pop 还原并删除 stash
git stash list 查看 stash 列表
git stash show 查看某个 stash 修改了哪些文件
git stash clear 清空所有 stash
git stash save "备注" 添加带说明的 stash

九、使用场景举例

场景 推荐操作
急着切换分支但不想 commit git stash → git checkout
回到主分支合代码 git stash → git pull → git checkout → git stash pop
临时改动太多想保存现场 git stash save "阶段性备份"

十、结语

git stash 是你的"代码备忘录",

在混乱和紧急任务中,它就像一只"时间胶囊",

让你随时暂停当前进度,又能毫无负担地重拾继续。

相关推荐
duyacode5 天前
FastAPI为什么成为默认答案
程序员
Java_AI工程师5 天前
90%的人写Function Calling,只写了"把参数传给工具执行"这一步,剩下的参数校验、错误重试、超时控制、结果格式化,全是空白。
java·人工智能·程序员
Hilaku5 天前
为什么死磕 1px 的团队,用户体验反而更差?
前端·javascript·程序员
codigger5 天前
我用 AI 做完整项目后,总结出一套把需求钉死的工作流
ai·程序员·编程·ai编程·#人工智能
SimonKing5 天前
SpringBoot 集成 SSE 实现服务端推送或可代替Websocket
java·后端·程序员
挖掘狂人5 天前
用 AI 写代码别只甩一句指令,这套工作流救过我的项目
程序员·ai编程·codebuddy
Sam_Deep_Thinking5 天前
关于java final关键字的可见性
java·后端·面试·程序员
狂师5 天前
cloudflared,不需要服务器和公网 IP 的免费内网穿透,一条命令上手
服务器·程序员·开源
demo007x5 天前
我用 AI 做了一个跨平台的PopClip:拾趣Magpie
程序员·github·ai编程
zzzzzz3105 天前
每日一条技术记录:把碎片学习变成可复盘的知识卡片
程序员·markdown·沸点