问题背景
一些情况下,想提交一下小 feature,但又不想增加 Minor 版本号,而是增加 Patch 版本号。
按照提交规范,修改 patch 得用 fix,但对 fix 的理解一般是修复一个 bug,所以很容易纠结该用哪个。
重新理解 fix
其实可以这样理解:
fix: 在语义化版本控制中不应该狭隘地理解为 “bug 修复 “,而是更广义的 “对发布版本的修正和完善”:
fix: 可以包括:
- Bug 修复 - 传统意义上的错误修正
- 小功能补充 - 对现有功能的小幅增强
- 用户体验改进 - 提升易用性的小改动
- 边缘情况处理 - 完善现有功能的边界处理
- 性能微调 - 小幅性能优化
- 兼容性修复 - 解决兼容性问题
- 文档内嵌修正 - 修正代码中的注释、错误信息等
实际例子
# 这些都可以用 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 版本 - 修正和完善,向后兼容