<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 規(guī)范git commit的提交記錄

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

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

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

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

    規(guī)范 git commit 記錄

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

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

    交互式生成 commit 記錄,需要用戶調(diào)用自定義的 npm scripts,例如npm run commit。但還是可以直接調(diào)用原生 git 命令 git commit 來提交記錄。而檢查是在正式提交前進(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: 無開發(fā)成本

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

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

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

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

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

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

    在實(shí)際工作中,發(fā)現(xiàn)方法 1 中的常用規(guī)范,足夠覆蓋團(tuán)隊(duì)日常開發(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è)人資料

    存檔

    主站蜘蛛池模板: 老司机亚洲精品影院| 亚洲αv在线精品糸列| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产精品高清免费网站| 中文成人无字幕乱码精品区| 九九热这里只有国产精品| 精品国产v无码大片在线观看| 99热成人精品免费久久| 国产成人亚洲精品青草天美| 亚洲国产精品一区二区九九 | 人妻少妇精品无码专区动漫| 99久久人人爽亚洲精品美女| 国产成人精品日本亚洲网址| 国产亚洲精品资源在线26u| 亚洲综合av永久无码精品一区二区 | 国产欧美日韩精品a在线观看| 国产亚洲精品免费视频播放| 亚洲国产精品国自产电影| 99热精品在线| 国产精品视频二区不卡| 久久亚洲精品国产精品| 亚洲人精品午夜射精日韩| 日本午夜精品理论片A级APP发布| 九九热这里只有国产精品| 国产日韩精品无码区免费专区国产| 777被窝午夜精品影院| 青青草国产精品久久| 久草视频在线这里精品| 国产精品久久自在自线观看| 999精品视频| 国产精品2019| 国产日韩一区在线精品欧美玲| 国产精品无码a∨精品| 国产亚洲精品a在线无码| 国产亚洲精品资源在线26u| 国产精品无码av在线播放| 国产精品福利一区二区久久| 久久国产精品久久国产精品| 亚洲综合一区二区国产精品| 国产成人精品曰本亚洲79ren | 日批日出水久久亚洲精品tv|