日本一区二区三区在线播放-国产视频一-美女黄网站成人免费视频-奇米中文字幕-日本少妇xxxxx-九九精品99-国产人碰人摸人爱视频-欧美亚洲网站-国产艳妇av在线-在线av网站-久久a久久-可以免费看黄色的网站-国产视频一二-在线播放视频高清在线观看-男人的天堂av网站-久久一二三区-欧美日韩综合一区二区

規(guī)范git commit的提交記錄

2020-4-23    seo達(dá)人

隨著項(xiàng)目體積的增加,參與到項(xiàng)目中的同學(xué)越來(lái)越多,每個(gè)人都有自己的打 git log 的習(xí)慣:

  • 格式 1: add: 添加...
  • 格式 2: [add]: 添加...
  • 格式 3: Add 添加...

為了形成統(tǒng)一的規(guī)范,達(dá)成共識(shí),從而降低協(xié)作開(kāi)發(fā)成本,需要對(duì) git commit 記錄進(jìn)行規(guī)范。

規(guī)范 git commit 記錄

規(guī)范 git commit 記錄,需要做兩件事情:

  • 通過(guò)交互式命令行,自動(dòng)生成符合指定規(guī)范的 commit 記錄
  • 提交記錄后,在 git hooks 中進(jìn)行 commit 記錄格式檢查
問(wèn):既然已經(jīng)交互式生成了規(guī)范記錄,為什么需要在 hooks 進(jìn)行檢查?

交互式生成 commit 記錄,需要用戶調(diào)用自定義的 npm scripts,例如npm run commit。但還是可以直接調(diào)用原生 git 命令 git commit 來(lái)提交記錄。而檢查是在正式提交前進(jìn)行的,因此不符合要求的記錄不會(huì)生效,需要重新 commit。

調(diào)研:交互式 commit log 規(guī)范方案

前期調(diào)研結(jié)果,關(guān)于 commit 提示有兩種做法:

  1. 直接使用 commitizen 中常用的 adapter
  2. 根據(jù)團(tuán)隊(duì)的需要,自定義 adapter

方法 1 的優(yōu)缺點(diǎn):

優(yōu)點(diǎn) 1: 直接安裝對(duì)應(yīng)的 adapter 即可

優(yōu)點(diǎn) 2: 無(wú)開(kāi)發(fā)成本

缺點(diǎn) 1: 無(wú)法定制,不一定滿足團(tuán)隊(duì)需要

方法 2 的優(yōu)缺點(diǎn):

優(yōu)點(diǎn) 1: 可定制,滿足開(kāi)發(fā)需求

優(yōu)點(diǎn) 2: 單獨(dú)成庫(kù),發(fā)布 tnpm,作為技術(shù)建設(shè)

缺點(diǎn) 1: 需要單獨(dú)一個(gè)倉(cāng)庫(kù)(但開(kāi)發(fā)成本不高)

代碼實(shí)現(xiàn)

在實(shí)際工作中,發(fā)現(xiàn)方法 1 中的常用規(guī)范,足夠覆蓋團(tuán)隊(duì)日常開(kāi)發(fā)場(chǎng)景。所以,選擇了方法 1.

step1: 安裝 npm 包

npm i --save-dev commitizen cz-conventional-changelog @commitlint/cli @commitlint/config-conventional husky

添加 package.json 的配置:

"scripts": { "commit": "git-cz" }, "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" }
}, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" }
}

在項(xiàng)目根目錄下創(chuàng)建commitlint.config.js

module.exports = { extends: ["@commitlint/config-conventional"]
};

使用方法:不再使用git commit -m ...,而是調(diào)用npm run commit。

<img src="https://tva1.sinaimg.cn/large/006tNbRwly1gbjcfr3xb5j30cw00tjrd.jpg" style="width: 100% !important;"/>

日歷

鏈接

個(gè)人資料

存檔

武定县| 珠海市| 济阳县| 望都县| 商城县| 安乡县| 漳州市| 休宁县| 乌审旗| 新津县| 当涂县| 宝山区| 七台河市| 峨边| 临泽县| 呼图壁县| 万荣县| 大石桥市| 刚察县| 乐业县| 陈巴尔虎旗| 郓城县| 海安县| 桦川县| 保康县| 施秉县| 汉阴县| 曲阜市| 靖江市| 西盟| 建始县| 黑山县| 容城县| 乐平市| 徐汇区| 澄江县| 衡东县| 襄樊市| 南江县| 乐东| 福建省|