在commit-msg 钩子触发时,对应的脚本会接收到一个参数,这个参数就是 commit 消息,通过 cat $1 获取,并赋值给 commit_msg 变量。 验证commit 消息的正则比较简单,看代码即可。如果对 commit 提交规范有兴趣,可以看看我另一篇
总之,就是检查对比,commit的message中是否包含对应文件名。 我们经过研究发现,采用git的hook机制是一个合理的解决方案。hook可以在提交阶段触发一些逻辑上的保护,常用的有pre-commit和commit-msg。 我先尝试了续写工程里shell语言的“pre-commit”文件。 (这样的代码第一眼看过去,我的内心很复杂) 在Pre-commit中实现...
Git hook是一种自定义脚本,它可以在特定的Git操作(如commit、push等)发生时触发执行。通过在.git/hooks目录下创建脚本文件,可以实现在Git操作过程中添加自定义的验证和处理逻辑。 下面是一种实现commit规则检查的步骤: 1. 首先,打开终端,进入项目的根目录。 2. 创建一个新的Git hook脚本,命名为”commit-msg”。...
或是commit-msg,也能在真正 commit 前拿到 commit 信息内容,去做一些检验工作。 利用git hook 的能力,我们就可以在 commit 前做一些风格检验或格式化,比如 ESLint、Prettier、commit 格式等。 git hook 是 sh 脚本,在项目.git/hooks目录下。这有一个比较尴尬的问题:.git 下的文件是不会被 git 提交的。husky ...
客户端hook又分为pre-commit、prepare-commit-msg、commit-msg、post-commit等,主要用于控制客户端git的提交工作流。用户可以在项目根目录的.git目录下面配置使用,也可以配置全局git template用于个人pc上的所有git项目使用。服务端hook又分为pre-receive、post-receive、update,主要在服务端接受提交对象时进行调用。
1、在子系统git仓库路径/.git/hooks下,将以下内容覆盖commit-msg.sample文件中 #!/bin/sh# # An example hook script to check the commit log message. # Called by"git commit"with one argument, the name of thefile# that has the commit message. The hook should exit with non-zero ...
hook机制可以理解为回调.各个钩子其实就是一段 bash 脚本,各钩子脚本的名字都是固定的.可以查看git项目根目录下的 .git/hooks 这个文件夹,看看都有哪些可用的钩子. $ cd project_dir $ ls .git/hooks/ applypatch-msg.sample commit-msg.sample pre-applypatch.sample prepare-commit-msg.sample pre-rebase.sam...
commit-msg代表对 commit message 进行 hook,hook 的时候执行后面的命令commitlint -E HUSKY_GIT_PARAMS进行检查。 可以直接在命令行执行commitlint -h看一下 commitlint CLI 的具体用法: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 @commitlint/cli@8.2.0-Lint your commit messages[input]reads from stdin...
prepare-commit-msg钩子在启动提交信息编辑器之前,默认信息被创建之后运行。 它允许你编辑提交者所看到的默认信息。 该钩子接收一些选项:存有当前提交信息的文件的路径、提交类型和修补提交的提交的 SHA-1 校验。 它对一般的提交来说并没有什么用;然而对那些会自动产生默认信息的提交,如提交信息模板、合并提交、压缩...