问题
在一次分支切换中由于误操作将其他分支中的stash pop到了另一个分支,导致代码产生了非常多的冲突。还好当前分支改的不多直接dicard掉就好了,但是另一个的分支的stash就没有了,很多代码由于不想直接commit而stash下来,现在全部没了,心慌的不行,几天的工作都白干了。于是到网上搜索了一下有没有可以抢救的方法。
方案
git stash 中的代码由于误操作而在其他分支执行了git stash pop 或者 git stash clear后代码丢失,抢救的方法大致有两个:
- 网上搜索到的比较多的就是执行
git fsck --lost-found
执行完之后会得到很多 id ,其中会标明哪些是 commit,另一个blob不太清楚是什么东西
Checking object directories: 100% (256/256), done.
Checking objects: 100% (64354/64354), done.
dangling blob eb0a5cabe0d2030dbe0d203be0d224a8b9d46ef5
dangling blob 8b9d46ef59260ea17892401cb22e54f4df56bf04
dangling blob 5e13c8974187cdf3d8b9d46ef58bcb7ed88ce967
dangling blob a1140825d9cd8b9d46ef5b8d4f8685383kkd66a5
dangling blob 841a404f69eba49fb48b5d5ef18b9d46ef586468
dangling blob 36222c728e359