commit husky提交教研报错时出现直接将修改的文件全部恢复的情况

最近我配置了一个commit 的husky提交教研功能,可以很好的解决不规范的提交,在提交之前将不好的代码规避掉,但是出现了一个很奇怪的现象,就是当我们提交的时候出现文件有问题的时候文件会自动将所有修改的文件全部消失掉。控制台会报如下错误:
在这里插入图片描述
由于问题比较严重,特地搜了半天add过后的文件怎么恢复,尝试了使用

git fsck lost found

然后去.git/lost-found/others目录下就可以找到最近add的文件
在这里插入图片描述
在这里插入图片描述
挨个查看文件内部的代码后发现里面完全没有我刚刚修改的代码,最终还是没有解决,但是当我读他的错误信息的时候我无意间发现了他有一个的stash单词,于是我打开了git提交日志,发现了确实他运行了操作,也git stash就是将修改代码存储,并恢复修改。
在这里插入图片描述
于是我果断运行了git stash pop,文件恢复了很开心!,特此记录,希望有一样遭遇的人可以得到解决。

2023-3-13 更新---------------------------------------------------------------------------------
今日终于是真相大白的时候了,最后我发现每一次git commit 操作由于我配置了pre-commit钩子,会运行lint-staged操作,他会执行git stash将我们的代码先本地缓存一份,然后对于我们stash的代码运行我的eslint -fix操作,当验证结束以后会再次将代码恢复也就是stash pop操作,如果eslint校验通过就运行git add .并重新 commit,但是有一个问题出现了那就是我的components.d.ts文件
在项目正在运行的时候,我们执行了git stasheslint fix操作,当有文件被修复的时候会导致代码改变,vite会重新打包变化的文件,这样有时候会导致按需引入文件被更新,这样文件就被改变了,当pre-commit结束校验结束后执行git stash pop 操作且你之前存储的文件也包含components.d.ts,就会发现有文件冲突,就无法pop出存储的文件了,让人产生一种好像代码被删除的感觉,其实只要撤销components.d.ts更改,并执行git stash pop操作就可以恢复文件了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Freedom风间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值