Git多行使用正则表达式提交消息验证

时间:2017-10-04 05:04:07

标签: regex bash git-bash githooks git-commit

我正在使用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时,它仍然无法正常工作。

0 个答案:

没有答案