git commit丢失代码

git commit 时,lint-staged(eslint —fix)检查代码时提示 error,无法完成自动 fix。但是返回编辑器发现工作区代码全丢了,重新 commit 提示: nothing to commit, working tree clean

这个是之前遇到的大坑,遇到过两次,资料也很难找到,第一次的时候我是凭热乎的记忆将代码重新改了一遍…

其实是 lint-staged 将代码暂存了起来,解决办法如下:

# 查看stash栈,应该就是第一条
git stash list
git stash apply stash@{0}

之前的代码就恢复了,更详细的解释可以参考 https://stackoverflow.com/questions/60334337/why-are-my-changes-gone-after-a-cancelled-git-commit-and-how-do-i-recover-them