vue3中通过git提交代码时触发git的pre-commit钩子,进而运行lint-staged导致代码丢失

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> //重置到对应的哈希值 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值