1.lint-staged 的工作流程:
当你执行 git commit 时,lint-staged 会触发配置的检查工具(如 ESLint、Prettier)。
这些工具可能尝试自动修复代码,并将修复后的代码重新添加到暂存区(git add)。
如果在此过程中出现错误(如代码冲突、Git 操作失败),lint-staged 会终止提交,并将未提交的修改存储到 stash 中,防止丢失。
2.代码“丢失”的真相:
你的代码并没有真正丢失,而是被 Git 自动保存到了 stash(一种临时存储区)。
工作目录因此回滚到提交前的状态,导致看似代码“消失”。
解决方案:
a.直接从Stash中恢复代码
git stash pop
这会从stash中取出最近的修改,应用到工作区中。
如果有多个 stash,使用 git stash list
查看列表,再用 git stash apply stash@{n}
指定恢复(n
是序号)。
b.如果你运行 git stash pop
时提示 No stash entries found
,说明 Git 的 stash 存储区中没有记录。
//运行命令查看一下stash的记录
git stash list
如果是有输出的那么可以尝试恢复指令条目:
git stash pop stash@{0} // 替换成stash编号
c.使用git reflog找回提交
git reflog // 查看操作记录
git reset --hard <commit-hash> //重置到对应的哈希值