记一次作死操作--git reset的乱用

git就不多说,大家都认识,平常用的很顺手,也很丝滑,偶尔一些高难度作动也是越来越飞起,所以就觉得很熟练了,结果今天就因为一个骚操作,害自己差点丢了写了两天的代码。

先说结论,没事别reset

1
git reset --hard

这个命令用的很丝滑,所以在操作的时候想都没想就直接按了回车,于是悲剧了。

场景复现

写了2天的代码,测试完成,感觉没问题了,准备add 并commit的时候,突然发现文件列表里有一个老鼠屎一样的deploy.todo文件。于是在git add .还没完成的时候,立马按下了control+c ,想都没想敲了 git reset –hard HEAD

然后 git status的时候,发现所有辛苦写的代码全都没了。。。😭

怎么办,因为没有add 没有提交,git log里啥都没有,git rerlog也无济于事,难道我又要凭记忆再写一遍吗??

找回失去的代码

因为我是git add 过程中control+C的,代码量不大,应该已经全部add进去了,经过一番google,终于找到了可以恢复没提交的文件的方法:

  1. 执行 git fsck –lost-found
  2. cd到.git下的lost+found/other文件夹内
  3. grep 一下你写的代码,找到对应的文件,拷贝出来,重命名

切记,reset的时候要当心!