关于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
    

    在本地的.git/lost-found/other目录下可以找到这些文件,打开这些文件,然后一个个的拷贝回去即可。

  • 如果已经commit,且add的话,直接执行git log 或者git reflog找到相应的版本回退即可。


   转载规则


《关于git reset --hard这个命令的惨痛教训》 孤独如梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
window下编写的脚本在Linux下不能执行的问题解决 window下编写的脚本在Linux下不能执行的问题解决
window下编写的脚本在Linux下不能执行的问题解决问题描述在window下用notpad修改后的脚本在linux上无法执行,提示类似的信息:“没有那个文件或目录”。 问题分析原因是CR/LF问题,在window下按入一个回车键实际上输
2019-06-06
下一篇 
数据表表名或字段名为SQL关键字时Hibernate解决方案 数据表表名或字段名为SQL关键字时Hibernate解决方案
一、将表名或字段名用方括号([])括起来。 xml中的配置 <property name="key" type="string" /> 注解中的配置 @Column(name = "[key]") public String ge
2019-06-06
  目录