关于 git 钩子函数,就是在 git 进行提交的时候触发一些可执行脚本的功能,详情可以看这篇博客【GIT知识】git进阶-hooks勾子脚本_git hooks-CSDN博客,我这里稍微演示一下怎么用 node 编写钩子的脚本
以 pre-commit 钩子为例,会在用户 git commit 的时候进行执行,假如我想在提交之前在终端输出一句话,正在提交
1,在 .git/hooks
目录下创建一个名为 pre-commit
的文件(没有扩展名),编辑 pre-commit
文件,内容如下:
#!/bin/sh# 使用 Node.js 执行脚本
node ./scripts/pre-commit.js# 如果脚本执行成功,则允许提交;否则阻止提交
if [ $? -ne 0 ]; thenecho "提交被取消"exit 1
fi
node ./scripts/pre-commit.js
:调用你编写的 Node.js 脚本。$?
:检查上一步命令的退出状态码。如果状态码不为 0,则表示脚本执行失败,提交会被阻止。
2,在项目根目录下创建一个 scripts
文件夹,并在其中创建 pre-commit.js
文件,编辑 pre-commit.js
文件,内容如下:
#!/usr/bin/env nodeconsole.log("正在提交");// 示例:可以在这里添加其他逻辑,比如运行 lint 检查或测试
// 如果需要阻止提交,可以通过 process.exit(1) 来中断提交流程// 允许提交
process.exit(0);
console.log("正在提交")
:在终端输出提示信息。process.exit(0)
:表示脚本执行成功,允许提交。- 如果需要阻止提交,可以改为
process.exit(1)
。
此时在进行 git commit 的时候就会触发脚本里面的内容了