约定式提交 (Conventional Commits) 教程

约定式提交 (Conventional Commits) 教程

conventionalcommits.orgThe conventional commits specification项目地址:https://gitcode.com/gh_mirrors/co/conventionalcommits.org


项目介绍

约定式提交是一种轻量级的提交消息约定,旨在提升版本控制历史的可读性和一致性。通过一套简单的规则,它帮助开发者创建结构化的提交信息,便于后续的代码审查、自动化发布流程及长期的项目维护。该规范源自 Angular 项目,现已成为广泛采纳的标准,其官方仓库位于 https://github.com/conventional-commits/conventionalcommits.org.git


项目快速启动

要快速启动并应用约定式提交,首先需理解核心提交类型:

  • feat: 新增功能
  • fix: 修复缺陷
  • docs: 文档更新
  • style: 代码风格更改,不影响逻辑
  • refactor: 重构代码
  • test: 测试相关修改
  • chore: 维护工作,不涉及源码变更
  • ci: 持续集成配置更改

示例提交消息:

git commit -m "feat(login): 添加邮箱登录功能"

安装并配置 Commit Lint 可以帮助团队遵循此规范:

  1. 安装 Commit Lint:

    npm install --save-dev @commitlint/cli @commitlint/config-conventional
    
  2. 配置 Commit Lint:

    在项目根目录创建.commitlintrc.js文件:

    module.exports = {
      extends: ['@commitlint/config-conventional'],
    };
    
  3. 运行 Commit Lint 前置钩子:

    package.json添加 husky 钩子:

    "husky": {
      "hooks": {
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      }
    },
    

    并安装 husky:

    npx husky install
    

应用案例和最佳实践

在多人协作的项目中,约定式提交提供了一种标准语言,使得变更意图一目了然。例如,在进行版本发布时,可以快速筛选出影响版本号变动的feat:fix:提交,决定semver中的次版本或补丁版本升级。

  • 明确区分功能与修复:保证每个特性或错误修复都是单独的提交,便于回滚。
  • 利用 CI/CD:与CI系统结合,自动构建、测试特定类型的提交,如ci:改变后的部署验证。
  • 持续文档更新:确保每次重要更改都有对应的文档更新,提升项目可维护性。

典型生态项目

约定式提交已成为众多开发工具和流程的一部分,其中包括但不限于:

  • GitLab Merge Requests 支持展示按规范编写的提交消息,便于审查。
  • GitHub Actions 中可配置触发条件,依据提交类型自动执行任务。
  • Semantic Release 自动化发布工具,依赖于提交消息来确定版本号的变化。

通过将这些生态系统中的工具与约定式提交相结合,项目管理变得更加高效且标准化。


综上所述,采用约定式提交不仅能提高代码库的健康度,还能加强团队之间的沟通效率,是现代软件开发流程中不可或缺的一部分。

conventionalcommits.orgThe conventional commits specification项目地址:https://gitcode.com/gh_mirrors/co/conventionalcommits.org

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭律沛Meris

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值