git reset --hard 也有还能拯救的情况,兄弟稳住别慌,看我能救你不?

 

1.git commit后执行的 git reset --hard :此时 git reflog 能找到本地仓库的操作日志,再次git reset --hard [HEAD或者前面的id都可以] ,此时可以理解为原路返回上次git reset --hard 那一步之前了,然后重新来;

例如:git reset --hard HEAD@{1}             ---------PS:我用的远程仓库是Grrit,应该都是一样的;

2.git add了,但是没commit 这下蛋蛋微疼,因为没有直接的日志或者操作记录,git没有还原依据了,所以要自己去创造:直接在命令行执行:git fsck --lost-found      然后打开.git文件夹=>lost-found文件夹=>other文件夹,

这些没有名字的文件(blob文件)就是你git reset --hard 清掉的 git add 的文件,名字变了 但是里面的代码是没有改变的,(有人说git merge/rebase可以还原,如果能当然最好不过,不过本人亲测无效)你要做的就是逐个把文件查看,改名字放到原来的位置(不要慌,用vs-code打开检查文件依赖关系,就不会错了;玩丢的文件个数少一点还好,多了就惨了,这可是大实话!!!!!!)

 

以下情况基本可以直接判加班重写了

1.如果你没git commit 也没git add,那就彻底完犊子了。(卧槽,兄弟,给你狂的,不明白咋回事你都敢git reset --hard ,你真的疯了!!!

 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐