问题背景

一些情况下,想提交一下小 feature,但又不想增加 Minor 版本号,而是增加 Patch 版本号。

按照提交规范,修改 patch 得用 fix,但对 fix 的理解一般是修复一个 bug,所以很容易纠结该用哪个。

重新理解 fix

其实可以这样理解:

fix: 在语义化版本控制中不应该狭隘地理解为 “bug 修复 “,而是更广义的 “对发布版本的修正和完善”:

fix: 可以包括:

  1. Bug 修复 - 传统意义上的错误修正
  2. 小功能补充 - 对现有功能的小幅增强
  3. 用户体验改进 - 提升易用性的小改动
  4. 边缘情况处理 - 完善现有功能的边界处理
  5. 性能微调 - 小幅性能优化
  6. 兼容性修复 - 解决兼容性问题
  7. 文档内嵌修正 - 修正代码中的注释、错误信息等

实际例子

# 这些都可以用 fix:
git commit -m "fix: improve error messages for better user experience"
git commit -m "fix: add validation for edge case input"
git commit -m "fix: enhance existing search with fuzzy matching"
git commit -m "fix: optimize existing API response format"
git commit -m "fix: add missing accessibility attributes"

关键思维转换:

  • feat: = 新增独立功能 (对外 API 新增,新的用户功能)
  • fix: = 完善现有发布 (修正、补充、改进已有的功能或体验)

这样理解更符合语义化版本的本质:

  • Minor 版本 - 新功能,向后兼容
  • Patch 版本 - 修正和完善,向后兼容