name: commit-message description: 格式化git提交信息,结合Conventional Commits摘要行与Linux内核风格的正文。在编写、审查或格式化提交信息时使用。
提交信息格式化
摘要行
使用Conventional Commits格式:
<类型>(<范围>): <描述>
- 类型 (必填):
feat,fix,docs,style,refactor,perf,test,build,ci,chore - 范围 (可选): 受影响的组件或区域,放在括号内
- 描述: 使用祈使语气,首字母小写,不加句号,最多50个字符(硬性限制72个字符)
- 对于破坏性变更: 在冒号前添加
!,例如:feat(api)!: 移除已弃用的端点
正文
与摘要行之间用空行分隔。遵循内核风格:
- 在72列处换行
- 使用祈使语气(例如“添加功能”,而不是“已添加功能”)
- 解释为什么,而不是做了什么(差异对比会显示做了什么)
- 描述用户可见的影响和动机
- 在适用时,用数字量化改进
引用提交时,使用12位以上字符的SHA哈希值并附上摘要:
提交 e21d2170f36602ae2708 ("video: remove unnecessary
platform_set_drvdata()") 引入了一个回归问题...
无尾部信息
省略所有尾部信息:不要包含 Signed-off-by, Reviewed-by, Acked-by, Tested-by, Cc, Fixes, Link 等。
示例
单行修复:
fix(解析器): 处理空输入而不引发恐慌
带正文的功能:
feat(认证): 添加OAuth2 PKCE流程支持
移动端和SPA客户端无法安全存储客户端密钥。PKCE
允许这些客户端在不暴露客户端代码中凭据的情况下安全地进行身份验证。
这通过消除不安全的隐式流程变通方法,减少了移动用户的身份验证失败。
破坏性变更:
feat(api)!: 要求所有端点进行身份验证
匿名访问造成了安全漏洞并使速率限制复杂化。要求身份验证简化了安全模型并
启用了按用户配额。
客户端现在必须在每个请求中包含有效的Bearer令牌。
重构:
refactor(数据库): 将连接池提取到专用模块
庞大的数据库模块增长到2000多行,使得维护变得困难。分离连接池提高了
可测试性并允许独立的配置调优。