如何创建自定义Git钩子限制提交消息主题行不超50字符
创建自定义Git钩子限制提交消息主题行长度
Git的commit-msg钩子可以在提交前检查消息格式,以下是实现主题行不超过50字符的具体步骤:
1. 创建钩子文件
在项目根目录下的.git/hooks文件夹中,新建名为commit-msg的文件(如果已有示例文件commit-msg.sample,可以直接复制并重命名)。
2. 编写钩子脚本
将以下内容写入commit-msg文件:
#!/bin/bash # 读取提交消息的第一行(主题行) SUBJECT=$(head -n1 "$1") # 计算主题行的字符数 SUBJECT_LENGTH=${#SUBJECT} # 检查长度是否超过50 if [ "$SUBJECT_LENGTH" -gt 50 ]; then echo "❌ 提交消息主题行过长:当前为${SUBJECT_LENGTH}字符,最多允许50字符" exit 1 fi exit 0
3. 赋予执行权限
在终端中运行命令,给钩子文件添加可执行权限:
chmod +x .git/hooks/commit-msg
4. 测试钩子
尝试提交一个主题行超过50字符的消息,比如:
git commit -m "这是一个远远超过五十个字符长度的提交消息主题行用来测试钩子是否生效"
此时Git会报错并阻止提交,提示主题行过长。
注意事项
- 这个钩子是本地钩子,只对当前仓库生效,如果团队需要统一规范,需要让每个开发者都配置该钩子,或者将钩子文件放到项目代码目录中,通过脚本自动同步到
.git/hooks目录。 - 脚本中的字符数计算包含空格和特殊字符,符合Git提交消息的常规统计方式。
内容的提问来源于stack exchange,提问作者Syed Mustaqhim
相关产品推荐
相关产品推荐

