--- #领域/工具技巧 #复盘/0 #临时/备忘 #状态/待处理 ## 一句话描述 [__git提交规范______] --- ## 核心规范 >空想不如行动,积累胜于苛求。 >实践 > 沉淀 > 完美主义 实践不是盲目行动,而是带着“小目标、可验证“的方向试错,实践后必须沉淀(比如记录问题、总结规律),否则就是低水平重复。 实践大于沉淀,沉淀大于完美;完美是沉淀的终局方向,沉淀是实践的复盘产物;分域施策,避坑落地,始于行动,终于迭代。 --- ## 三省沉淀法 - 达成了[__置顶了git的提交的消息规范______]目标 - 遇到了[__旧版本不兼容______]问题 - 下次改进[__不修改旧版本,仅忽略______] ## 个人理解 [___结构化编写提交消息,方便人工阅读和脚本自动化_____] ## 实践计划 #状态/待实践 1. [_使用工具落地规范成果_______] - **commitlint**:校验提交信息是否符合约定式提交规范,避免违规提交 - **husky**:Git 钩子工具,配合 commitlint 在提交前自动校验 - **语义化版本(SemVer)**:约定式提交是 SemVer 的 “落地载体”,type 直接对应版本升级规则(feat→MINOR、fix→PATCH、BREAKING CHANGE→MAJOR) - **standard-version**:基于约定式提交自动生成 CHANGELOG、升级版本、打 Tag 2. [________] 3. [________] --- ## 核心定义 git 需遵循**Conventional Commits(约定式提交)** 规范 feat 和 fix 是核心提交类型,语义化版本 feat 对应小版本升级, fix 对应补丁版本升级 ## 提交格式 类型:必须是规定的几大类中 作用域:必须现在式动词开头 add/modify/fix,重点在于现在做了什么 详细描述:解释为什么改、改了什么 脚注: 1. 破坏性变更:必须写 `BREAKING CHANGE:` 变更描述 2. 关联Issue: 必须用 Closes/Fixes/Resolves + `#数字`,如 Close `#123` 3. 回滚提交: 必须注明: Reverts `` ```plaintext <类型>[可选作用域]: <简短描述> [可选的详细描述] [可选的关闭Issue链接] ``` ``` # 新功能(带作用域) feat(shop): 新增商品收藏功能 # 修复Bug(带详细描述) fix(cart): 修复购物车数量为0时仍显示小红点 用户删除所有商品后,购物车小红点未清空,原因是判断条件遗漏了数量为0的场景,现已补充。 # 文档变更 docs: 更新API文档中用户信息接口的参数说明 # 重构 refactor: 提取表单验证的公共方法到utils目录 ``` ## 常见前缀 | 前缀 | 全称 / 含义 | 适用场景举例 | | ---------- | ----------------- | ------------------------------------ | | `feat` | Feature(新功能) | 新增用户注册功能、添加商品筛选接口 | | `fix` | Fix(修复 Bug) | 修复登录密码错误提示不显示、修复数据统计偏差 | | `docs` | Documentation(文档) | 更新 README、补充接口注释、修改使用说明 | | `style` | Style(格式) | 调整代码缩进、补充分号、修改空格(不影响逻辑) | | `refactor` | Refactor(重构) | 提取公共函数、优化代码结构(无功能 / 修复变更) | | `perf` | Performance(性能) | 优化列表渲染速度、减少接口请求耗时 | | `test` | Test(测试) | 添加单元测试、补充集成测试、修复测试用例 | | `build` | Build(构建) | 升级 webpack 版本、修改打包配置、调整依赖版本 | | `ci` | CI/CD(持续集成) | 修改 GitHub Actions 配置、调整 Jenkins 流水线 | | `chore` | Chore(杂项) | 删除无用文件、清理日志、修改.gitignore | | `revert` | Revert(回滚) | 回滚之前的错误提交(格式:`revert: feat: 新增xx功能`) | ### 示例 #### ✅ 示例:新功能提交 ```bash feat(pay): add wechat pay signature verification Implement wechat pay V3 signature check to prevent fake payment requests Closes #45 ``` #### ✅ 示例:Bug 修复提交 ```bash fix(cart): fix empty cart quantity display error Quantity showed 1 instead of 0 when cart is empty, fix the boundary condition check Fixes #67 ``` #### ✅ 示例:性能优化(Angular 特有) ```bash perf(list): optimize large list rendering speed Reduce rendering time by 60% for lists with more than 200 items Closes #89 ``` #### ✅ 示例:CI 配置修改(Angular 特有) ```bash ci: update woodpecker ci test step Add node_modules cache to reduce CI execution time from 5min to 1min ``` #### ✅ 示例:回滚提交(Angular 特有) ```bash revert: feat(pay): add wechat pay signature verification This reverts commit abc1234567890. Reverts #45 ``` #### ✅ 示例:破坏性变更提交 ```bash feat(auth): refactor token validation logic Unify token validation to use JWT only, remove old token format support BREAKING CHANGE: Old token format is no longer supported, clients need to upgrade to JWT Closes #99 ``` #### ✅ 示例:`BREAKING CHANGE:`脚注 涉及接口删除、参数移除等 breaking 变更,必须加`BREAKING CHANGE:`脚注,避免线上风险 ``` BREAKING CHANGE: 移除旧版token校验方式,统一使用JWT ``` ### 避坑点 ⚠️ 避坑点1: 解决方案:✅ ⚠️ 避坑点1: 核心问题: 解决方案:✅