如何为Git提交信息设置格式规范?不使用Git Hooks的替代方案
Git提交信息格式规范及无Git Hooks的替代方案
一、Git提交信息的格式规范设置
常用的是Conventional Commits规范,结构清晰易读,还方便后续生成变更日志,具体结构如下:
- 类型(Type):必填,说明改动性质,常见类型:
- feat:新增功能
- fix:修复bug
- docs:文档更新
- style:代码格式调整(不影响逻辑)
- refactor:代码重构(不新增功能、不修复bug)
- test:测试相关改动
- chore:构建/工具/依赖等杂项改动
- 范围(Scope):可选,说明改动涉及的模块或功能点,比如
(auth)代表权限模块 - 描述(Description):必填,简短的改动摘要,首字母大写,结尾不加标点
- 正文(Body):可选,详细说明改动原因和具体内容,可分行列出
- 页脚(Footer):可选,关联Issue或说明破坏性改动,比如
Fixes #123或BREAKING CHANGE: 移除旧版登录接口
举个符合规范的提交信息示例:
feat(auth): 添加用户短信登录功能
- 集成第三方短信验证码服务SDK
- 优化登录接口的参数校验逻辑,增加验证码有效期验证
Fixes #456
你可以把这个规范写入项目的CONTRIBUTING.md文档,让所有团队成员统一参考。
二、不使用Git Hooks的替代方案
1. 用Git内置提交模板约束
通过配置Git的提交模板,让每次提交自动弹出规范模板,引导用户按格式填写:
- 全局配置(所有项目生效):
git config --global commit.template ~/.gitmessage - 项目级配置(仅当前项目生效):
git config commit.template .gitmessage - 创建
.gitmessage文件,写入模板内容:
提交时执行# <类型>(<范围>): <简短描述> # # 详细说明改动原因和内容(可选) # # 关联Issue(可选,如Fixes #123)git commit,编辑器会自动加载这个模板,用户只需填充对应内容。
2. 用CLI工具交互式提交
使用commitizen这类工具,通过交互式问答引导生成符合规范的提交信息:
- 先全局安装:
npm install -g commitizen - 项目内初始化规范:
commitizen init cz-conventional-changelog --save-dev --save-exact - 之后提交代码时用
git cz代替git commit,工具会一步步提示选择类型、填写范围和描述,自动生成符合规范的提交信息。
3. 代码托管平台的分支保护规则
在GitHub、GitLab等平台设置分支保护策略,强制提交信息符合正则规则:
- 比如在GitLab的分支设置中,开启“提交消息必须匹配正则表达式”,填写对应规则(如
^feat|fix|docs|style|refactor|test|chore(\(\w+\))?: .+$),不符合格式的提交无法推送到受保护分支。
4. 团队约定+代码审查
明确团队的提交信息规范,在代码PR/MR审查环节,将提交信息格式作为审查项之一,不符合要求的提交要求作者修改后再合并。这种方式依赖团队执行,但无需额外工具支持。
内容的提问来源于stack exchange,提问作者sanjay Paudel
相关产品推荐
相关产品推荐

