前端之路:用Angular规范来约束团队git提交

栏目: JavaScript · 发布时间: 6年前

内容简介:团队协作开发,这种方法的好处是,任何人只要想往本项目提交 commit,就必须按照规范,否则不然提交。这样就做到了每次提交都会检查 commit 信息了,当不符合规范时,会给出提示。 例如:

团队协作开发, git 作为一个开源的分布式版本控制系统,俨然成为当下最受欢的项目代码版本管理工具, 即是团队,就要有一定的规矩,规范,这样才能更好的发挥团队效率。熟悉 git 的小伙伴都知道,每次提交代码, 都要写 Commit message(提交说明),否则就不允许提交,至于提交的信息 git 并没有进行约束,以至于, 提交上来的说明是五花八门,由此社区出现了多种写法规范,其中 Angular 规范 是目前最为广泛的写法,比较合理和系统化。 本文就来讲一讲两种使用 Angular 规范的方法。

法一,基于项目通过 hooks 触发(我司团队用的此方法)

这种方法的好处是,任何人只要想往本项目提交 commit,就必须按照规范,否则不然提交。

  1. 安装所需依赖, npm i --save-dev husky chalk
  2. 在项目的根目录新建一个文件夹 .github (名字随意),这个文件夹专门用来存放 github 相关的东西;
  3. 在上一步的文件夹中新建 node 脚本文件 verifyCommitMsg (名字随意);
  4. 在上一步的脚本文件中写入一下代码:
#!/bin/env node

const chalk = require('chalk');
const msgPath = process.env.HUSKY_GIT_PARAMS;
if (!msgPath) {
  console.error(chalk.red(`process.env.HUSKY_GIT_PARAMS can't be ${msgPath},please check`));
  process.exit(1);
}
console.log('HUSKY_GIT_PARAMS: ', msgPath);
const msg = require('fs')
  .readFileSync(msgPath, 'utf-8')
  .trim();
console.log(msg);

const commitRE = /^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/;

if (!commitRE.test(msg)) {
  console.log();
  console.error(
    `  ${chalk.bgRed.white(' ERROR ')} ${chalk.red(`invalid commit message format.`)}\n\n` +
      chalk.red(
        `  Proper commit message format is required for automated changelog generation. Examples:\n\n`
      ) +
      `    ${chalk.green(`feat(compiler): add 'comments' option`)}\n` +
      `    ${chalk.green(`fix(v-model): handle events on blur (close #28)`)}\n\n` +
      chalk.red(`  See .github/COMMIT_CONVENTION.md for more details.\n`)
    // chalk.red(`  You can also use ${chalk.cyan(`npm run commit`)} to interactively generate a commit message.\n`)
  );
  process.exit(1);
}
复制代码
  1. package.json 增加/修改 hooks,如下:
...
"husky": {
  "hooks": {
    "commit-msg": "node .github/verifyCommitMsg"
  }
},
...
复制代码

这样就做到了每次提交都会检查 commit 信息了,当不符合规范时,会给出提示。 例如:

前端之路:用Angular规范来约束团队git提交

法二,基于 npm 依赖插件

这种方法的好处是,提交比较人性化。

  1. 全局安装依赖, npm i -g commitizen
  2. 初始化适配器, commitizen init cz-conventional-changelog --save-dev --save-exact
  3. git cz 命令 代替 git commit

例如:

前端之路:用Angular规范来约束团队git提交

=== 文中不足,欢迎指正 ===


以上所述就是小编给大家介绍的《前端之路:用Angular规范来约束团队git提交》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器