恢复被删除的git stash数据的方法

今天在使用git的时候,本来想pop出来git stash的数据

# git stash pop

一不小心打成了

# git stash drop

这条命令会删除stash中的数据,接下来该如何恢复从stash中删除的数据呢?

其实git stash drop这条命令并没有删除文件对象,只是移除了对它的引用。

git fsck这条命令是用来验证数据库中对象的连接和有效性(官方的说法是Verifies the connectivity and validity of the objects in the database),会列出被删除的commit
执行这个命令

# git fsck --unreachable

结果如下

检查对象目录中: 100% (256/256), 完成.
unreachable blob 53c5fdf17996cf1b1a8053092c30d0250f458066
unreachable commit 137adbd3c4d52d43a75b12c92282c37511839308
unreachable commit 15bca765f018f58e2c24bd6dd90d096ec9e3da1e

使用git show命令来依次查看每次提交,发现第一个提交就是被误删除的commit,让后可以使用git stash apply这个命令来恢复这个提交即可

git stash apply 53c5fdf17996cf1b1a8053092c30d0250f458066
36nu 分享编程知识及经验

已有账号?立即登录