我有验证语句(完整的githooks commit-msg): #!/ bin / sh
read -r message<$1
if [[ $text =~ ^[a-z] ]]
then
printf "$warning Check commit message.\n"
exit 1
fi
当我用文本“这是我的测试提交”进行提交时,githooks会回应:
[WARNING] Check commit message.
但是当我使用类似这样的东西:“这是我的测试提交”时,我会得到相同的结果。
我做错了什么?
我正在使用Wind10,Git 2.20.1.windows.1和GitBash。
答案 0 :(得分:0)
您应该尝试:
^[a-z][A-Za-z0-9 -]*
您当前的正则表达式检查单字母小写。
答案 1 :(得分:0)
我刚刚测试了这样的similar hook,但是使用了 commit-msg
,不是 pre-commit
一个。
(Git 2.23,Windows 10,CMD会话)
myrepo/.git/hooks/commit-msg
#!/bin/sh
echo "1='$1'"
cat $1
if [[ $(cat $1) =~ ^[a-z] ]]
then
printf "$warning Check commit message.\n"
exit 1
fi
它的工作方式如广告所示:如果您的提交消息以小写字母开头,则会阻止提交的创建:
D:\git\rr>git add .
D:\git\rr>git commit -m "aaa"
aaa
Check commit message.
commit-msg
挂钩接收.git/COMMIT_EDITMSG
作为第一个参数。
第一个大写字母可以使用:
D:\git\rr>git commit -m "Aaa"
Aaa
[master 222cffb] Aaa
1 file changed, 1 insertion(+)