发布于2026-07-10 阅读(0)
扫一扫,手机访问
在使用 IntelliJ IDEA 时,Stash Changes 功能堪称代码暂存的利器。不过,如果你第一次接触它,在 UnStash Changes 面板里一不小心点到了那个醒目的 Clear 按钮——别问我怎么知道的——那一瞬间,脑子大概率是空白的。辛辛苦苦暂存的代码说没就没,真是让人心头一紧。
但别慌,事情还没那么绝望。误点 Clear 之后,其实还有办法把代码捞回来。
答案是——利用 Git 底层的垃圾回收与对象存储机制。步骤如下:
git fsck --lost-found
执行之后,你会看到一长串输出,里面包含很多 dangling commit 类型的记录。

注意看输出中的 commit 那一列(红色框里),其他的信息暂时不用管。
git show [commit的id,不带中括号]
这条命令会显示出该 commit 对应的详细变更内容,你可以根据文件列表或代码片段来判断是不是你想要恢复的那个 stash。
找到目标 commit 之后,直接用 git merge 把它合并回来:
git merge [commit的id,不带中括号]

这时 IDEA 的本地变更面板里会出现一个被恢复的版本,代表刚才 merge 进来的 commit。

嗯,代码就这么回来了。不得不说,Git 的对象模型确实够硬核,stash 被 clear 之后并没有真正从仓库里消失,只是变成了 dangling commit,等着你通过 fsck 去把它挖出来。
这算是一个挺实用的小技巧,分享出来希望对遇到同样问题的朋友有点帮助。记住,下次手滑点 Clear 之后,先别绝望,跑一遍 git fsck --lost-found 试试——说不定你的代码还在那里等着你呢。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8