起因:
脚手架里一个 git commit 的钩子,统一自动格式格式代码的,如果校验不通过,就会 commit 失败
现在的前端脚手架基本上都会在 提交之前做代码校验。
// package.json "scripts": { ... "precommit": "lint-staged", ... }, "lint-staged": { "**/*.{js,jsx,ts,tsx}": "npm run lint-staged:js", "**/*.{js,jsx,tsx,ts,less,md,json}": ["prettier --write"] },
上面的 package.json 在 commit 之前,会运行 lint-staged, 校验 js 代码。这一步如果有错误,你的代码会被放到暂存区。
所以你的新代码都没啦。
但是不要慌,这个时候,我们运行 git stash pop,把暂存区的代码放出来就行了。