Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何制定Git提交规范 #9

Open
GodLyons opened this issue Aug 1, 2021 · 0 comments
Open

如何制定Git提交规范 #9

GodLyons opened this issue Aug 1, 2021 · 0 comments

Comments

@GodLyons
Copy link
Owner

GodLyons commented Aug 1, 2021

团队成员协同开发的时候,优秀的提交规范可以让我们每次提交更加清晰,利于code review和回退等操作

  • 需要的工具:

    • git
    • gitlab:代码版本管理平台
    • husky:操作git hook
    • commitizen:git提交提示
      • cz-customizable:AnglularJS团队的提交规范
    • commitlint:检查提交信息是否符合格式
  • 安装

    • 安装commit-lint

      yarn add @commitlint/{cli,config-conventional} --dev
    • 生成commit-lint的配置文件

      // 把内容输出到commitlint.config.js中
      echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
    • 配置规则,下面是我的配置

      module.exports = {
        extends: ['@commitlint/config-conventional'],
        rules: {
          // type 类型定义
          'type-enum': [2, 'always', [
            "feat", // 新功能 feature
            "fix", // 修复 bug
            "docs", // 文档注释
            "style", // 代码格式(不影响代码运行的变动)
            "refactor", // 重构(既不增加新功能,也不是修复bug)
            "perf", // 性能优化
            "test", // 增加测试
            "chore", // 构建过程或辅助工具的变动
            "revert", // 回退
            "build" // 打包
          ]],
          // subject 大小写不做校验
          'subject-case': [0]
        }
      };
    • 安装husky:目的是在提交的时候校验提交信息是否合法

      yarn add husky --dev
      
      // 使用husky激活hook
      yarn husky install
      
      // 添加一条hook规则
      yarn husky add .husky/commit-msg 'yarn commitlint --edit $1'
    • 添加完成后我们测试一下代码

      image-20210801172249329

      可以看到,当我们提交一个不规范的信息的时候会直接报错。

      image-20210801172538582

      当我们规范化填报信息的时候就可以通过了。

      但是这也太麻烦了,我们需要记住自己提交的是哪个种类,还要防止类型等填报错误。

    • 通过commitizen提示

      yarn add commitizen
      
      yarn commitizen init cz-conventional-changelog --yarn --dev --exact

      之后我们提交的的时候就不再需要git commit -m "...",而是使用yarn cz替代。

      image-20210801173839453

      这样,我们只需要按照提示操作就可以完成代码的提交。

    • gitlab有什么用?

      gitlab是一个代码托管平台,我们在真正开发中不可能把代码提交到github上,而是提交到公司的代码仓库中。gitlab不仅提供了代码托管的功能,还可以进行自动化构建,今天我们主要讲如何用gitlab来规范提交。

      • 分支:每个团队都有自己的分支规范,我司是基于feature分支进行开发,feature分支就是具体功能的开发分支,它只和develop分支进行交互。
      • MR(Merge Request):gitlab提供的分支合并功能。通常我们开发完代码不能随意的合并到develop分支,而是需要特定人员review之后再进行合并,这样有利于代码质量的监控。而我们基于feature分支开发配合MR功能使代码的合并更加清晰。
      • Issues:类似于github的Issues,我们可以把项目中的问题记录到其中,方便问题的跟踪和回溯。

《参考》:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant