前端项目为了保证代码的规范性,通常需要在git commit时进行校验。本项目通过husky插件设置了lint-staged,具体怎么配置,本篇文章就不讲述了,这里主要叙述git commit时如果代码有错误,代码丢失后如何找回。
场景
git commit时,发现下载的一个外部js语法错误(或者其他原因导致校验失败),从而使本次修改的代码在vscode的源代码管理中全部消失。通过git log或者git reflog也查找不到对应的提交记录。
解决方案
在Git Bash终端输入下面代码(注意:此处一定要在Git Bash终端进行,亲测在cmd或者vscode中输入第2条命令会报错,小插曲部分会详细介绍)第1条命
git stash list
此时,会看到下列结果
stash@{0}:list-staged automatic backup
继续输入第2条命令
git stash apply --index stash@{0}
丢失的代码就可以成功找回。
小插曲
开始我在vscode命令行输入第2条命令,出现下述问题。此时不用怀疑命令出了问题,改用Git Bash终端就可以。
error:unknow switch
usage: git stash apply [--index] [-q|-quiet] [<stash>]
-q, --quiet be quiet, only report errors
--index attempt to recreate the index