前言
最近在公司项目中commit代码时加强了检测机制,增加了pre-commit钩子用来检测代码。
package.json文件:
"pre-commit": "lint-staged"
"lint-staged": {
"linters": {
"*": "git secrets --scan-history"
}
}
其中代码检测用到了git secrets,git-secrets是什么呢?
主要是防止将密码和其它敏感信息提交到git的一个插件,我在这个安装这个插件的过程中遇到了一些坑,在此记录一下,希望能帮到有同样困扰的人。
安装过程
1、进入github官网
我这里是window系统,所以找到windows安装教程,他这里提到要执行install.ps1脚本,执行完成后会自动加到PATH环境变量当中去。
我们可以看到在他的代码仓库中有install.ps1这个脚本,于是我们直接将整个项目拷贝下来,具体将项目放在哪个目录下没有要求。
2、执行脚本
点击鼠标右键,有个使用 PowerShell 运行,正常流程应该执行完这个脚本后,再在项目中commit提交就能成功了。
但是我在这里出了点问题,install运行时询问我是否可以执行不可信赖的脚本,应该选择是的,但是我选择了否,让后就执行不了了。
如果你也遇到了这个问题请看下一步。
3、通过PowerShell执行脚本
我们打开WindowsPowerShell文件,具体文件;路径在哪需要你自己找了。
找到powershell_ise文件点击鼠标右键使用管理员运行,然后输入 get-executionpolicy,了解现用的执行策略。如果是防止执行不可信赖文件的话我们就输入 set-executionpolicy remotesigned,再选择一次。
选择是后,我们可以在powershell中 cd 到git-secrets文件目录,再执行一次./install脚本。如出现如下字段则表示成功了。
4、其它可能出问题的地方
正常情况到这一步就能成功commit代码了,但是我自己在做的时候在确实能够commit代码了,但是node.js相关命令却无法在项目文件下执行,可能是环境变量出了问题。
后来我重新卸载node.js,再安装就能用了,但是git-secrets又不能用了,根据commit报错提示有可能是yarn的路径出了问题,网上也有人遇到了类似的问题。
于是乎我把yarn卸载再重新安装了一遍,终于!!
node.js 和 git-secrets 都能在项目目录下同时使用,并能成功commit代码了。