如何一次性删除所有 Git stash

清空全部 stash 用 git stash clear,不可恢复,执行前用 git stash list 确认。删除单个用 git stash drop stash@{n}。误删后可通过 git fsck --unreachable 找孤立提交尝试恢复。

最佳实践
Git 提交历史与版本恢复示意

git stash clear 一条命令清空整个 stash 栈。 注意这是不可恢复的操作——执行前 git stash list 过一遍,确认没有还需要的暂存。只删个别条目用 git stash drop stash@{n}。

命令

git stash list           # 先检查
git stash clear          # 全部删除

单个删除:

git stash drop stash@{2}     # 删指定条目
git stash pop                # 应用并删除最新一条

误删了还有救吗

stash 本质也是提交对象,clear 后成为孤立提交,垃圾回收前可以捞:

git fsck --unreachable | grep commit
# 逐个 git show <哈希> 确认是不是丢掉的 stash
git stash apply <哈希>       # 找回

能否恢复取决于对象是否已被垃圾回收,不能保证固定窗口;找到目标后应立即建立引用保留。

更好的习惯

重要改动别长期躺 stash——stash 适合"临时挪开几小时"。需要跨天保留的改动,开分支提交才是正路:

git stash branch keep-for-later stash@{0}   # 把 stash 转成正式分支

常见问题(FAQ)

Q:clear 和一条条 drop 有区别吗?

结果一样,clear 就是批量。区别在风险面:clear 一键全没,drop 至少逼你看一眼条目编号。

Q:stash 占用磁盘空间吗?

占用,每个 stash 都是一组提交对象。大量 stash 会让仓库膨胀,定期清理是好习惯。

Q:能给 stash 加备注防误删吗?

git stash push -m "这里是什么改动",list 里会显示备注,比默认的 "WIP on main" 好认得多。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台