生活不能随意过,代码也不能随意写。vue
前一篇文章咱们已经把项目搭建好了,那是否是立刻就开始写页面了呀?ios
NO!git
不管在哪家公司,都会有相应的代码规范。新入职的员工每每第一步就要接受代码规范的学习。程序员
既然是实战项目,咱们也得在写页面以前把相关的规范配置作好。github
今天咱们先来看看项目中git的使用及相关规范吧。vue-cli
git blame
时能够快速明白代码用意;采用三段式,v版本.里程碑.序号,如v1.2.3shell
版本正式发布后,须要生产changelog文档,便于后续问题追溯。npm
每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。json
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
复制代码
注意冒号后面有空格。bash
其中,Header 是必需的,Body 和 Footer 能够省略。
Header部分只有一行,包括三个字段:type
(必需)、scope
(可选)和subject
(必需)。
表明某次提交的类型,好比是修复一个bug仍是增长一个新的feature。
全部的type类型以下:
scope用于说明 commit 影响的范围,好比数据层、控制层、视图层等等,视项目不一样而不一样。
subject是 commit 目的的简短描述,不超过50个字符。 其余注意事项:
Body 部分是对本次 commit 的详细描述,能够分红多行。
须要描述的信息包括:
有两个注意点:
若是须要的话能够添加一个连接到issue地址或者其它文档,或者关闭某个issue。
既然规范已经有了,那咱们就按照规范开始实战吧。
首先咱们新建两个分支:
git branch develop
复制代码
git branch feature-git提交规范
复制代码
而后咱们切换到新建的功能分支:
git checkout feature-git提交规范
复制代码
接下来咱们就来添加git提交信息效验的配置。
npm install -g commitizen
复制代码
mac下需在前面加sudo
commitizen init cz-conventional-changelog --save --save-exact
复制代码
配好后,以后用到git commit
命令时,改成使用git cz
。
这时,就会出现选项,用来生成符合格式的 Commit message。
好,咱们把刚刚的改动提交一下吧。 先把修改加入暂存
git add .
复制代码
使用git cz
代替 git commit
git cz
复制代码
结果以下:
由于咱们的commit使用向导生成彻底符合规范,因此发布新版本时, 能够用脚本自动生成Change log。
生成的文档包括如下三个部分:
每一个部分都会罗列相关的 commit ,而且有指向这些 commit 的连接。
固然,生成的文档容许手动修改,因此发布前,你还能够添加其余内容。 conventional-changelog
就是生成 Change log 的工具.
运行下面的命令便可:
npm install -g conventional-changelog-cli
复制代码
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
复制代码
这时你会发现项目目录里面多了CHANGLOG.md文件
咱们能够把命令放在script里面: 修改package.json文件,在script中添加:
"version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md"
复制代码
咱们作一次提交来试试看:
git add .
git commit -m "feat: 添加生成changelog功能"
复制代码
而后运行:
npm run version
复制代码
以后咱们看到CHANGELOG.md文件有了咱们的提交日志:
注意,我以前提交过一次,可是type使用的是build,因此不会在日志中体现。
最后咱们再把CHANGELOG.md的变化作一次提交:
git commit -m "docs: 添加CHANGELOG.md文件"
复制代码
细心的朋友可能已经发现,这两次提交我并无使用git cz
而是为了方便直接使用了git commit -m ""
这种形式,时刻记着提交信息规范的话使用这种方式也没问题,可是有时候不免失误,好比不当心把feat打成feet,那如何防止失误呢?来看看吧。
npm install --save-dev @commitlint/{cli,config-conventional}
npm install --save-dev husky
复制代码
@vue/cli-service 也会安装 yorkie,但yorkie fork 自 husky 且并不和以后的版本兼容。因此这里我仍是安装了husky
commitlint.config.js
module.exports = {
extends: ["@commitlint/config-conventional"],
rules: {
"type-enum": [
2,
"always",
["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"]
],
"subject-full-stop": [0, "never"],
"subject-case": [0, "never"]
}
};
复制代码
"husky": {
"hooks": {
"commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
}
}
复制代码
这样就配好了,如今咱们来测试一下:
上图能够看到,当我type输错时会报错,这样咱们就不怕不当心打错本身没注意到的状况啦。
修改以后成功提交。
最后咱们把咱们今天的工做提交到github上吧
git checkout develop
git merge feature-git代码提交信息审查
git checkout master
git merge develop
git push
复制代码
今天花了较大篇幅讲解如何为什么配置GIT提交规范及如何配置,实在是小肆深知在实际工做过程当中遵照规范是多么重要的一件事.
尤为是团队开发或是开源项目,能够说一个程序员的代码素质从他的每一次提交记录就能体现一二,因此还望你们能重视起来。
接下来几篇小肆会为你们带来代码效验、自动格式化、手机端适配、判断访问客户端类型等前期准备工做,关注个人公众号"技术放肆聊"持续关注吧!