误用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目录寻找文件
神仙难救

最新文章

  1. 开始使用 UIAlertController 吧
  2. java9-2形式参数
  3. PHP使用Mysql事务
  4. ubuntu下opencv2.4.9安装测试
  5. poj2826(线段相交)
  6. Java线程小记
  7. Python Selenium设计模式-POM
  8. IO (一)
  9. 常用VIM插件配置
  10. Day06 - Ruby三种存取限制:Public,Protected,Private
  11. Spring Boot自动扫描
  12. myeclipse 上安装 Maven3
  13. JAVA-随机生成四则运算
  14. Win10应用《纸书科学计算器》更新啦!
  15. jar包读取配置文件
  16. vue双向绑定原理源码解析
  17. 2.Servlet(一)
  18. 2017.9.5 postgresql加密函数的使用
  19. bash:haoop:command not found
  20. 复习C++_指针、动态分配内存

热门文章

  1. leaflet加载各种地图
  2. 使用JavaScript获取前一周的日期
  3. 3DSMAX安装失败,如何卸载修复重新安装3dmax 2017?
  4. Ionic3学习笔记(十六)上传头像至图床
  5. YY孵化虎牙,陌陌收购探探:你更看好谁?
  6. 使用JDBC CallableStatements执行存储过程
  7. Android中的AlertDialog和ProgressDialog用法
  8. Ionic3学习笔记(八)使iOS端、Android端 Navbar 透明化
  9. HF Java Chap 1
  10. SolrJ 的运用