github总结--关于git reset --hard这个命令的惨痛教训
如果没有commit,也没有add的话,执行git reset --hard后,那就没有任何办法了,相当于本地执行了delete命令。
如果没有commit,但已经add的话,试试执行git fsck --lost-found这个命令。
$ git fsck --lost-found
Checking object directories: 100% (256/256), done.
dangling blob 5d08e13a5c981e1a5958c0dd724df70a89f78d78
dangling blob 8b5e7f10bef800887a641ddde2aafd4a2e6e34fd
dangling blob 90a68722efd88cc3c3b5a2dee6d1c84b067c07ad
dangling blob a12a984b1c12a16f3bc88c11ba42c65f32cc2450
dangling blob 246f0f306161cad57fba63290f19c1bb8a07248b
dangling blob 283f3c2ffb892e191000da01d4ea072ba9debc48
dangling blob a01b48ce5126e1a552605f1b09ec447998d964a6
dangling blob c413f47a3ecd16029ddfab9c77e58a514c598538
dangling blob e3d5d02d4461e1ee4b591c9a81ddcd26acd09da6
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
在本地的.git/lost-found/other目录下可以找到这些文件,打开这些文件,然后一个个的拷贝回去即可。
- 如果已经commit,且add的话,直接执行git log 或者git reflog找到相应的版本回退即可。