我有验证语句(完整的githooks commit-msg):#!/bin/sh
read -r message<$1
if [[ $text =~ ^[a-z] ]]
then
printf "$warning Check commit message.\n"
exit 1
fi当我使用文本提交:"This is my test commit“时,githooks的响应是:
[WARNING] Check commit message.但是当我这样做的时候:“这是我的测试提交”,我得到了同样的结果。
我做错了什么?
我使用的是Wind10,Git版本2.20.1.windows.1和GitBash。
发布于 2019-09-23 02:23:36
我刚刚测试了这样一个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(+)发布于 2019-09-23 02:04:24
你应该试着:
^[a-z][A-Za-z0-9 -]*您当前的正则表达式检查为单字母小写。
https://stackoverflow.com/questions/58051923
复制相似问题