Git hook 提交消息正则表达式

问题描述 投票:0回答:1

我想在 git 提交消息中使用正则表达式,以便只允许某种格式的提交消息。我希望用户以格式输入提交消息。

示例

BLGR-1234 BUG Alignment fix

BLGR-1234 XXXX ZZZZZZ

其中

BLGR-1234
指的是 jira 票号,其中 BLGR 是硬编码文本

XXXX
可以是故事|BUGFIX|重构|合并|文档

ZZZZ
应该是推送内容的描述。

我正在使用以下正则表达式

commit_regex='BLGR-[0-9]+[[:blank:]](STORY|BUGFIX|REFACTOR|MERGE|DOCUMENT)[[:blank:]](([a-zA-Z0-9]+)(\s|_)*)+'

但是使用上面的正则表达式,如果我输入

BLGRBLGRBLGR-1234 BUG Alignment fix
,钩子将允许此提交消息。我不想让 BLGR 重复一次以上。有人可以告诉我如何解决这个问题吗? 粘贴我的提交消息挂钩文件

#!/usr/bin/env bash
commit_regex='BLRG-[0-9]+[[:blank:]](STORY|BUGFIX|REFACTOR|MERGE|DOCUMENT)[[:blank:]](([a-zA-Z0-9]+)(\s|_)*)+'
error_msg="Commit message format is incorrect." 
if ! grep -qE "$commit_regex" "$1"; then
    echo "$error_msg" >&2
    exit 1
fi
regex git githooks commit-message
1个回答
0
投票

使用这个正则表达式:

BLGR-[0-9]+ (STORY|BUGFIX|REFACTOR|MERGE|DOCUMENT) \w.*

© www.soinside.com 2019 - 2024. All rights reserved.