遵循Conventional Commits规范,如何在提交信息头部添加Issue编码?
Conventional Commits 中 Issue 编码的正确添加方式
Conventional Commits v1.0.0 确实没有明确规定 Issue 编码的放置规则,但社区有两种被广泛接受的实践,各有适用场景,核心是团队统一规则以保持提交历史一致性:
1. 两种写法的适用场景
把 Issue 编码作为 scope
scope 的设计初衷是标识提交影响的代码模块/范围,如果你的团队约定 Issue 编号直接对应单一代码模块的任务,或者该提交完全属于该 Issue 的专属任务,这种写法是可行的。但如果 Issue 涉及跨模块修改,用 Issue 编号当 scope 就会违背 scope 的语义(无法体现代码影响范围)。
示例:
feat(SPAN-500): add feat X to improve Y fix(SPAN-501): resolve data sync failure
把 Issue 编码作为描述后缀
这是社区更通用的做法,它不破坏 Conventional Commits 的标准结构(type(scope): description),将 Issue 编码作为附加元数据放在描述末尾,既符合规范,又能清晰关联 Issue,同时保留 scope 描述代码模块的作用。
示例:
feat(payment): add feat X to improve Y [#SPAN-500] fix(user-center): resolve data sync failure [#SPAN-501]
推荐方案
优先选择后缀写法,因为它能同时兼顾 Conventional Commits 的语义规范和 Issue 关联需求,尤其适合有明确代码模块划分的团队。如果你的团队没有模块划分习惯,或者以 Issue 为核心任务单元(每个 Issue 对应单一提交),也可以统一使用 Issue 编码作为 scope,但必须全团队严格执行同一规则。
内容的提问来源于stack exchange,提问作者Amorim
相关产品推荐
相关产品推荐

