Git 能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push 等钩子(hooks)。我们可以在 pre-commit 触发时进行代码格式验证,在 commit-msg 触发时对 commit 消息和提交用户进行验证,在 pre-push 触发时进行单元测试、e2e 测试等操作。 Git 在执行 git init 进行初始化时,...
Git 能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push等钩子(hooks)。我们可以在pre-commit触发时进行代码格式验证,在commit-msg触发时对 commit 消息和提交用户进行验证,在pre-push触发时进行单元测试、e2e 测试等操作。 Git 在执行git init进行初始化时,会在.git/hooks...
手写git hooks 脚本(pre-commit、commit-msg) 简介 Git 能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push等钩子(hooks)。我们可以在pre-commit触发时进行代码格式验证,在commit-msg触发时对 commit 消息和提交用户进行验证,在pre-push触发时进行单元测试、e2e 测试等操作。
commit-msg 在commit-msghooks 中,我们需要对 commit 消息和用户进行校验。 #!/bin/sh# 用 `` 可以将命令的输出结果赋值给变量# 获取当前提交的 commit msgcommit_msg=`cat $1`# 获取用户 emailemail=`git config user.email`msg_re="^(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|...
从动图中可以看出,这次 commit 已正常提交了。 commit-msg 在commit-msg hooks 中,我们需要对 commit 消息和用户进行校验。 #!/bin/sh #用 `` 可以将命令的输出结果赋值给变量 # 获取当前提交的 commit msg commit_msg=`cat $1` # 获取用户 email email=`git config user.email` msg_re="^(feat|fix...
手写git hooks 脚本(pre-commit、commit-msg),简介Git能在特定的重要动作发生时触发自定义脚本,其中比较常用的有:pre-commit、commit-msg、pre-push等钩子(hooks)。我们可以在pre-commit触发时进行代码格式验证,在commit-msg触发时对commit消息和提交用户进行验证
stages: [commit-msg] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: check-yaml - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace 即使我使用pre-commit run --all-files,commit-msg也不会被触发。
Git hooks 是 Git 的自定义脚本功能,能在特定动作发生时触发,例如在提交代码前后执行特定操作。常见的 hooks 包括 pre-commit、commit-msg、pre-push 等。在初始化 Git 时,会在 .git/hooks 目录生成一系列以 .sample 结尾的 hooks 脚本。要使脚本生效,需将 .sample 删除,将文件名改为无后缀。
客户端钩子包括:pre-commit、prepare-commit-msg、commit-msg、post-commit等,主要用于控制客户端git的提交工作流。服务端钩子:pre-receive、post-receive、update,主要在服务端接收提交对象时、推送到服务器之前调用。 git hooks位置位于每个git项目下的隐藏文件夹.git中的hooks文件夹里 具体内容可以参考git的文档 ...
#如 pre-commit install --hook-type prepare-commit-msg 常用指令 # 手动对所有的文件执行hooks,新增hook的时候可以执行,使得代码均符合规范。直接执行该指令则无需等到pre-commit阶段再触发hooks pre-commit run --all-files # 执行特定hooks pre-commit run <hook_id> ...