· Jeff · 技术文章  · 3 分钟阅读

约定式提交(Conventional Commits)规范速查

一份可直接照做的约定式提交规范:格式、类型、SemVer 对应、破坏性变更标记,附示例。

一份可直接照做的约定式提交规范:格式、类型、SemVer 对应、破坏性变更标记,附示例。

约定式提交 1.0.0

基于提交信息的轻量级约定,提供一组简单规则来创建清晰的提交历史,便于编写自动化工具。

格式

<类型>[可选 范围]: <描述>

[可选 正文]

[可选 脚注]

核心类型与 SemVer 对应

类型用途SemVer
fix:修复 bugPATCH
feat:新功能MINOR
BREAKING CHANGE破坏性 API 变更(脚注或 ! 前缀)MAJOR

推荐扩展类型

类型用途
build:构建系统或外部依赖变更
chore:非业务性代码修改(构建流程、工具配置)
ci:持续集成配置变更
docs:文档修改
style:代码样式调整(空格、缩进,不影响逻辑)
refactor:重构(不改变功能)
perf:性能优化
test:测试用例变更

破坏性变更的两种标记方式

方式一:脚注

feat: allow provided config object to extend other configs

BREAKING CHANGE: `extends` key in config file is now used for extending other config files

方式二:! 前缀

feat(api)!: send an email to the customer when a product is shipped

示例

# 简单修复
fix: prevent racing of requests

# 带范围
feat(lang): add polish language

# 破坏性变更
feat!: drop support for Node 6

BREAKING CHANGE: use JavaScript features not available in Node 6

为什么用约定式提交

  • 可自动生成 CHANGELOG
  • 基于提交类型自动决定版本号(SemVer)
  • 结构化提交历史,降低贡献门槛
  • 可触发构建和部署流程

常见问题

  • 大小写:随意,但保持统一
  • 多类型冲突:拆成多次提交
  • 写错类型:合并前用 git rebase -i 修改;已发布则看工具链
  • 不强制所有贡献者使用:squash 工作流下,维护者合并时统一即可
  • 还原提交:建议用 revert: 类型,脚注引用被还原的提交摘要

☕ 如果这篇文章对你有帮助

欢迎请 Jeff 喝杯咖啡,支持我持续分享更多软件技巧~

打赏功能即将上线,先点个赞也是支持 ❤️

返回博客

相关文章

查看全部 »
进程还在,端口已死:一个单线程 HTTP 服务的「假活」陷阱,和我的四层加固

进程还在,端口已死:一个单线程 HTTP 服务的「假活」陷阱,和我的四层加固

我自建的一个统计面板曾经挂了整整 16 天我才发现:进程从没退出、端口一直在 LISTEN、CPU 占用是零,看上去「健康得不得了」,可所有新连接都拿不到响应,公网一律 504。根因是单线程 HTTPServer 没有 socket 超时,被一条半开连接永久阻塞;更值得记的是第二层——进程监督器只认「进程存活」,这种假活对它完全不可见。这次我给它上了四层加固,也第一次想明白:为什么「重启脚本」这种修复,会被下一次部署悄悄冲掉。

自建 AI Agent 记忆系统的冲突消解:软失效、事件账本,和同一个 bug 我修了两次

自建 AI Agent 记忆系统的冲突消解:软失效、事件账本,和同一个 bug 我修了两次

Agent 的记忆越攒越多,新事实和旧事实开始打架。本文记录我给自己那套记忆系统做「冲突消解」的完整实现:为什么不能直接删、软失效 + 事件账本怎么设计、用什么判据判定两条记忆冲突。重点是一个真实的翻车——判据太激进,一条新记忆横扫了 50 条无关事实,误杀 19 条。更值得记的是:同一个 bug,我修了两次。