我想在 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
使用这个正则表达式:
BLGR-[0-9]+ (STORY|BUGFIX|REFACTOR|MERGE|DOCUMENT) \w.*