行业资讯 2025年08月6日
0 收藏 0 点赞 934 浏览 1728 个字
摘要 :

文章目录 背景 commit-msg pre-push 本文主要讲解关于git如何使用webhooks规范代码提交相关内容,让我们来一起学习下吧! 背景 最近在尝试使用git的webhooks在团队内推……




  • 背景
  • commit-msg
  • pre-push

本文主要讲解关于git如何使用webhooks规范代码提交相关内容,让我们来一起学习下吧!

背景

最近在尝试使用git的webhooks在团队内推广和实施git规范,包括一些对commit message的校验、对分支名称的校验等。

由于使用的是内网开发,无法使用其他现成的规范,所以编写了相关的脚本。本文作为记录,接下来进行一个简要的分享。

本次编写了两个本地脚本,分别是commit-msg和pre-push,分别会在本地commit和push远程分支的时候做相应的校验。

commit-msg

commit-msg代码如下:

msg=`awk \'{printf(\"%s\", $0)}\' $1`

TYPE_LIST=(
    \'feat:\'    #新功能feature
    \'update:\'  #在feat内修改
    \'fix:\'     #修补bug
    \'docs:\'    #文档
    \'style:\'   #格式化,不影响代码运行的变动
    \'perf:\'    #性能优化
    \'delete:\'  #删除功能或文件
    \'modify:\'  #功能修改
    \'test:\'    #增加测试
)
COMMIT_MESSAGE_MIN_LENGTH=10

separator=\"|\"

tips_msg=\"$( printf \"${separator}%s\" \"${TYPE_LIST[@]}\" )\"
tips_msg=${tips_msg:${#separator}}

echo \'Start commit-msg check:\'$msg

if [[ \"${TYPE_LIST[@]}\" =~ ${msg$:*} ]]; then
    msg_length=${#msg}
    if [[ ${msg_length} -lt ${COMMIT_MESSAGE_MIN_LENGTH} ]]; then
        echo -e \"pre-commit Error: Commit message should be bigger than ${COMMIT_MESSAGE_MIN_LENGTH} and current commit message length: ${msg_length}\"
        exit 1
    fi
    
    echo \"commit-msg: Commit comments validate Success!\"
else
    echo -e \"commit-msg Error: Commit comments message should be started with [${tips_msg}]...\"
    exit 1
fi

脚本解读:主要是针对commit message的校验,校验message的前缀以及长度(至少10个字符)是否符合规范

pre-push

pre-push代码如下:

remote=\"$1\"
url=\"$2\"

z40=0000000000000000000000000000000000000000

TYPE_LIST=(
    \'feature\'    #新功能分支
    \'hotfix\'     #热修复分支
)

separator=\"|\"

tips_msg=\"$( printf \"${separator}%s\" \"${TYPE_LIST[@]}\" )\"
tips_msg=${tips_msg:${#separator}}

# 当前分支
branch=$(git rev-parse --abbrev-ref HEAD)

echo \'Start pre-push check:\'
echo \"current local branch is ${branch}\"

while read local_ref local_sha remote_ref remote_sha
do
    for element in \"${TYPE_LIST[@]}\"
    do
        if [[ ${element} == ${branch%%_*} ]]; then
            echo \"pre-push: Push Success!\"
            exit 0
        fi
    done
done

脚本解读:主要是针对本地分支的命名做校验,校验分支名称的前缀是否符合规范

以上就是关于使用git如何使用webhooks规范代码提交相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9972.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

985
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

462
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

346
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

453
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

514
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

827
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号