使用了pre-commit这个库,想在commit之前检查文件,结果git commit之后,脚本根本不执行,请问是什么原因?
"pre-commit" 配置的 ["echo", "check"] 未触发
package.json配置
{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "check": "node ./config/check.js", "echo": "echo \"Error: I SHOULD FAIL LOLOLOLOLOL \" && exit 1" }, "pre-commit": ["echo", "check"], "author": "", "license": "ISC", "dependencies": { "@svgdotjs/svg.draggable.js": "^3.0.3", "@svgdotjs/svg.js": "^3.2.0" }, "devDependencies": { "pre-commit": "^1.2.2" }}
pre-commit钩子不触发可能是由于以下几个原因:
pre-commit install
命令,以安装 pre-commit 钩子。package.json
中,pre-commit
字段应该是一个数组,数组中的元素应该是要执行的脚本的名称。但是,在你的配置中,pre-commit
字段的值是一个字符串数组,而不是一个脚本名称数组。你应该将pre-commit
字段的值更改为一个包含脚本名称的数组,例如["check"]
,或者如果你想要按顺序执行多个脚本,你可以使用&&
来连接它们,例如["echo && check"]
。git commit
命令,而不是git commit --no-verify
命令。--no-verify
选项会跳过所有的提交前钩子。根据你的package.json
配置,你可以尝试将pre-commit
字段的值更改为["check"]
,然后再次尝试提交。这将只执行check
脚本。如果你还希望echo
脚本在check
脚本之前执行,并且如果echo
脚本失败(返回非零退出码)则不执行check
脚本,你可以使用&&
来连接它们,如下所示:
{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "check": "node ./config/check.js", "echo": "echo \"Error: I SHOULD FAIL LOLOLOLOLOL \" && exit 1", "pre-commit": "echo && check" }, "author": "", "license": "ISC", "dependencies": { "@svgdotjs/svg.draggable.js": "^3.0.3", "@svgdotjs/svg.js": "^3.2.0" }, "devDependencies": { "pre-commit": "^1.2.2" }}
然后,运行pre-commit install
来重新安装钩子。现在,当你运行git commit
时,echo
脚本将首先执行,如果它成功(返回零退出码),则check
脚本将执行。如果echo
脚本失败(返回非零退出码),则check
脚本将不会执行,并且git提交将被中止。
pre-commit是用于管理和维护多语言预提交Hook的框架 在提交代码审查之前,Git钩子脚本可用于识别简单问题。我们在每次提交时运行我们的钩子,以自动指出代码中的问题,例如缺少分号、尾随空格和调试语句。通过在代码审查之前指出这些问题,这允许代码审查者专注于变更的体系结构,同时不会浪费时间与琐碎的样式挑剔。 当我们创建更多的库和项目时,我们认识到跨项目共享我们的预提交钩子是痛苦的。我们从项目到
You can use Prettier with a pre-commit tool. This can re-format your files that are marked as "staged" via git add before you commit. Option 1. lint-staged Use Case: Useful for when you want to use ot
主要内容:JAVA钩子OrientDB钩子类似于数据库术语中的触发器,它在用户应用程序中的每个CRUD操作之前和之后启用内部事件。可以使用挂钩编写自定义验证规则,强制执行安全性,或安排外部事件,例如针对关系DBMS进行复制。 OrientDB支持两种钩子 - 动态钩子 - 触发器,可以在类级别和/或文档级别构建。 Java(Native)钩子 - 触发器,可以使用Java类构建。 动态钩子 动态钩子比Java钩子更灵活
我试图在我的自定义模块中添加一个钩子,但在我在prestashop backoffice或使用webservice添加一个客户后,它不会被触发。 我试图注册的钩子名称是“actionCustomerAccountAdd”。 这是模块的相关代码。你能帮我吗?我是一名PHP开发人员,但这是我第一次在Prestashop端进行开发。 我有此代码来签入日志文件或页面,但它没有被激发: 非常感谢。
通过ai问答vscode,实现打开文件后触发和切换标签页触发弹出消息框,根据ai提供的代码编写,但是没有达到期望效果,期望效果是vscode打开文件后,切换标签,弹出消息框,显示设置的内容 初次进行vscode 插件开发尝试,先从实现打开文件后触发和切换标签页触发弹出消息框开始,通过chat的ai问答得知可以通过onDidChangeActiveTextEditor和onDidOpenTextDo
问题内容: 我正在尝试使用Jenkins,docker和Ansible实现CI / CD管道。我 正在为版本控制系统使用SVN代码存储库。对于部署和 SVN代码存储库,我使用的是AWS EC2。部署和代码存储库位于单独的VM中。 我的要求 将代码提交到SVN存储库中时,需要触发一个 Jenkins Job。该工作将被称为ansible playbook,稍后将构建 项目,构建Docker映像并部署