找回git stash drop 的内容
找回git stash drop 的内容
背景:平时开发在同一个项目进行多件事的时候,经常会用到stash 的功能。假设你正在开发一个功能,但是突然有一个hotfix,然而你正在开发的东西可能很不完善,你不想直接进行commit。那么这个时候你会用stash 把修改暂存到本地,然后checkou 到hotfix分支,搞完后再切回来,然后把暂存的代码恢复继续开发
今天开发的时候,就是类似情况,我将本地正在开发的代码stash 了之后,切到hotfix分支进行问题修复。修复完了之后我的git 操作命令如下:
1 |
|
假设stash@{1}
是我要恢复的代码,我本意是想通过git stash apply stash@{1}
的方式恢复的,但是记错了命令,用了git stash drop stash@{1}
把我要恢复的代码记录给删掉了。回车下去就十分后悔,我心想完了,下午可能要白干了。
我马上搜了一下如何恢复drop 的stash 记录,果然有办法
1 |
|
这里有两个注意点,第一个是git fsck --lost-found
返回的结果列表中,并不是有顺序的,所以你可能需要多show 几条,才能找到你想恢复的那条数据。我这里正巧当天只有一个commit ,所以比较快的就找到了。
第二个注意点是,只能恢复commit 的dangling记录,如果是blob类型的,可以通过show 查看,但是无法直接apply恢复回来。
这次过后,我要经常commit 了,呜呜。
感谢阅读,勘误、纠错或其他请联系progerchai@gmail.com,或者点击这里提 issue 给我
欢迎交流 👏,你的每一次指导都可以让我进步
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!