You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git stash clear与drop未真正清除变更的问题求助

问题解答

这不是Git的Bug。

原因说明

git stash clear 仅会移除 .git/refs/stash 引用以及 stash 相关的 reflog 条目,但 stash 本质是Git的普通提交对象——只要你持有它的SHA-1哈希值,就能直接引用该对象。这些未被任何引用关联的对象会暂存于Git的对象数据库中,直到Git执行垃圾回收(GC)才会被彻底删除。

永久删除步骤

要彻底清除该stash对应的提交对象,执行以下命令即可:

  • 清理所有reflog条目,避免隐藏引用残留:
    git reflog expire --expire=now --all
    
  • 强制Git立即执行垃圾回收,删除所有无引用的对象:
    git gc --prune=now
    

执行完成后,再用之前的SHA-1尝试git stash apply,会提示无法找到该对象。

补充说明

Git默认会在30天后自动清理无引用对象,若不着急彻底删除,也可等待自动GC完成,无需手动执行上述命令。

内容的提问来源于stack exchange,提问作者Amin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:04:52