一、 git commit -m 'xxx' 出现问题
今天在上传项目的时候在commit阶段遇到一个问题,无论是在Sourcetree上传还是用命令git commit -m 'xxx'
都报了一下错误:
husky > npm run -s precommit (node v8.12.0)
husky > pre-commit hook failed (add --no-verify to bypass)
后面查了很多方法都没有很好解决。但是大概能总结问题:
pre-commit钩子惹的祸
当你在终端输入git commit -m "xxx"
,提交代码的时候,
pre-commit(客户端)钩子,它会在Git键入提交信息前运行做代码风格检查。
如果代码不符合相应规则,则报错。
虽然会提示add --no-verify
,但是我输入git commit -m 'xxx' --no-verify
绕过验证,强制提交。 好像还是没有上传成功.如果你也一样
请看下面
二、'弱鸡'的解决方案
为了省点事,我并没有花功夫去查找代码哪里不符合规范.我是暴力地把pre-commit
钩子给删除了!
具体步骤:
- 进入项目的.git文件夹(文件夹默认隐藏,可先设置显示或者命令ls查找)
- 再进入hooks文件夹
- 删除pre-commit文件 或者重命名,等提交过后再改回原来的名字(适用于某次必须提交某个改不动的文件)
重新git commit -m 'xxx'
git push
即可。SourceTree也可以正常推送
总结一句话: 删除.git的提交规则文件: rm -rf ./git/hooks/pre-commit
最后忠告一句: 这是不得已的办法。如果是日常开发,还是乖乖地写好代码的规范,现在代码一般都会进行ESLint
校验,如果觉得麻烦,可以装一个Prettier插件,帮你格式化代码