我正在使用git commit-msg并且我创建了应该验证提交消息的正则表达式。当我为一行创建正则表达式时,它可以工作。当我有多行消息时,它不会。我在Windows上工作。这是我创建的代码(在regex101.com上检查了正则表达式):
#!/usr/bin/env bash
commit_regex='^(TASK([0-9]+))\ \-\ ([A-Z](.*))[\n\r]{2}(\-\ (.+))(([\n\r]{1}-\ (.+))?)$'
error_msg="Commit message invalid"
if ! grep -iqE "$commit_regex" "$1"; then
echo "$error_msg" >&2
exit 1
fi
要验证的示例文本:
TASK123 - Task description
- commit description
- additional info (optional)
如何更正此脚本的一些建议?我不太熟悉git hooks并且创建bash。
编辑: 当我将z选项添加到这样的-izqE时,它仍然无法正常工作。