zoukankan      html  css  js  c++  java
  • 误用git reset -hard 的惨痛经历

    误用git reset -hard 的检讨书

    消失的代码们:

    我知道你们可能看不到了,但是我还是需要自我反省自己,因为自己的误操作,导致了你们的消失。

    事情的始末

    夜阑人静,周围除了少年敲击键盘的声音,就再也听不到其他声响,他伸了伸懒腰,满意的看着眼前的Android Studio中自己奋斗了1个小时的成果,熟练的按下了git commit,正要起身离开。
    AS报了错误:

    Pull is not possible because you have unmerged files

    少年轻蔑的笑了,随即打开Chrome输入了那段报错提示,困意袭来,出现的第一个搜索结果让他毫不犹豫的点了进去,少年快速的滑动文章,直接找到了解决代码部分:

    复制,转到AndroidStudio >Terminal > 输入 >回车 ,一气呵成。

    然而他再也笑不出来,眼前的项目已变回上一次自己 **git pull ** 的样子,之间自己没有过 commit 除了 Android Studio 自动的 add ,自己辛苦一小时的成果连个影子都已看不到。脑袋"轰"的一下,困意全无。

    慌乱的打开浏览器,查找着解决办法,不放过任何一个可能的机会,但是他又错了,又是看到任何一个救命稻草就拼命抓住,多经过多次尝试,最终,少年找到了解决办法。

    少年这会仔细的阅读了文章,加上前面几次的尝试未果的经验,很快就理解并再次敲起了键盘:

         git fsck --lost-found
    

    他知道,这个命令并不会让他的项目马上发生变化,几乎是同一时间,Terminal输出了这样一段代码:

    Terminal告诉少年,丢失的文件已经帮他找回来,放在了lost-found文件夹下

    确认过眼神,这确实是丢失的文件,只是文件名已看不出样子,内容是源码,遗憾的是,大概之前尝试的命令混乱,lost-found下的文件内容不是最新的,大概是创建文件后短暂的时间,并且不是新建的文件的修改内容已经找不到,还是得自己重新写。

    反思

    • 查找问题时不应该不看文章内容
    • 使用一个命令应该先了解其作用
    • 遇到问题不能乱,需冷静思考

    总结

    git reset -hard的恢复办法总的来说分为3个情况:

    已commit 未commit但有add 未commit未add
    git reflog 获取hash值
    git reset --hard [对应的值]
    git fsck --lost-found 恢复删除文件
    到.git/lost-found目录寻找文件
    神仙难救
  • 相关阅读:
    PHP基础介绍
    day96
    day95
    day94
    day93
    day93之微信推送
    22个必须知道的css技巧
    利用Js或Css滤镜实现IE6中PNG图片半透明效果 IE6PNG妥妥的
    dedecms调用日期格式化形式大全
    innerHTML动态添加html代码和脚本兼容性问题处理方法
  • 原文地址:https://www.cnblogs.com/zzerx/p/12497635.html
Copyright © 2011-2022 走看看