Git 是我们日常工作中使用最为广泛的分布式版本代码控制系统,因此在我们的实际工作中,git commit
代码提交规范能够让每一次代码提交都变得有据可循,方便后续的代码审查、问题追踪和版本管理。同时,规范的提交信息也能够为自动化工具提供便利,如生成变更日志、自动化部署等。
首先我们一起来看看行业统一认可且标准的 angular 项目的 git commit
规范写法。
首先一个规范的 git commit message
通常包含 Header、Body 和 Footer 三部分,各部分之间使用空行分隔。
<header>
// 空一行
<body>
// 空一行
<footer>
描述提交类型和简短说明。格式为:<类型>(<作用域>): <主题>
(<type>(<scope>): <subject>
)。
feat(payment): 微信支付功能集成
详细说明本次 commit 修改的内容。使用空行分隔段落,保持可读性。
- 新增微信支付SDK依赖
- 实现支付结果回调处理
- 添加支付相关的单元测试
主要用于关联 Issue、描述破坏性变更(BREAKING CHANGE)等。
Closes #889
BREAKING CHANGE: 旧版支付回调接口已废弃,需迁移至 /api/v2/callback
其实在实际开发工作中很多时候我们主要关注和使用的是 git commit message
的 Header 部分。Header 通常包含了提交的类型、作用域和简短的主题描述,这些信息对于快速了解每次提交的内容和目的已经足够。
描述提交类型和简短说明。格式为:<类型>(<作用域>): <主题>
。
格式:type(scope) : subject
提交类型 | 描述 | 示例 |
---|---|---|
feat | 新功能增加(feature) | feat: add user login feature |
fix | 修复BUG | fix: correct user authentication |
refactor | 代码重构(既不是新增功能,也不是修复 Bug) | refactor: simplify user validation logic |
docs | 文档/注释 | docs: update API documentation |
style | 代码风格相关无影响运行结果的 | style: format code with prettier |
test | 测试相关 | test: add unit tests for login feature |
build | 影响构建系统或外部依赖的更改(例如:gulp,broccoli,npm) | build: update webpack config |
revert | 代码撤销修改 | revert: revert commit 12345abc |
ci | 持续集成的配置文件和脚本的变动(例如:Travis,Circle,BrowserStack,SauceLabs) | ci: update Travis configuration |
chore | 依赖更新/脚手架配置修改等 | chore: upgrade React to the latest version |
perf | 性能优化 | perf(core): optimize virtual DOM diffing algorithm |