首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用githooks检查提交第一个字母是否为大写

如何使用githooks检查提交第一个字母是否为大写
EN

Stack Overflow用户
提问于 2019-09-23 01:52:58
回答 2查看 298关注 0票数 5

我有验证语句(完整的githooks commit-msg):#!/bin/sh

代码语言:javascript
复制
read -r message<$1

if [[ $text =~ ^[a-z] ]]
then
    printf "$warning Check commit message.\n"
    exit 1
fi

当我使用文本提交:"This is my test commit“时,githooks的响应是:

代码语言:javascript
复制
[WARNING] Check commit message.

但是当我这样做的时候:“这是我的测试提交”,我得到了同样的结果。

我做错了什么?

我使用的是Wind10,Git版本2.20.1.windows.1和GitBash。

EN

回答 2

Stack Overflow用户

发布于 2019-09-23 02:23:36

我刚刚测试了这样一个similar hook,但使用的是commit-msg,,而不是pre-commit

(Git 2.23、Windows 10、CMD会话)

代码语言:javascript
复制
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

它的工作方式与所宣传的一样:如果您的提交消息以小写字母开头,它将阻止提交创建:

代码语言:javascript
复制
D:\git\rr>git add .

D:\git\rr>git commit -m "aaa"
aaa
 Check commit message.

commit-msg挂钩接收.git/COMMIT_EDITMSG作为第一个参数。

如果第一个字母是大写的,它就可以工作:

代码语言:javascript
复制
D:\git\rr>git commit -m "Aaa"
Aaa
[master 222cffb] Aaa
 1 file changed, 1 insertion(+)
票数 1
EN

Stack Overflow用户

发布于 2019-09-23 02:04:24

你应该试着:

代码语言:javascript
复制
^[a-z][A-Za-z0-9 -]*

您当前的正则表达式检查为单字母小写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58051923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档