<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

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

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

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

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

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

          規(guī)范 git commit 記錄

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

          • 通過交互式命令行,自動生成符合指定規(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)行的,因此不符合要求的記錄不會生效,需要重新 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: 直接安裝對應(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ú)成庫,發(fā)布 tnpm,作為技術(shù)建設(shè)

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

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

          在實(shí)際工作中,發(fā)現(xiàn)方法 1 中的常用規(guī)范,足夠覆蓋團(tuán)隊(duì)日常開發(fā)場景。所以,選擇了方法 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;"/>

          日歷

          鏈接

          個人資料

          存檔

          91久久成人免费| 久久久精品国产免大香伊| 热久久最新网站获取| 狠狠色丁香久久婷婷综合蜜芽五月 | 欧美日韩精品久久免费| 影音先锋女人AV鲁色资源网久久| 久久婷婷五月综合97色一本一本| 亚洲欧美日韩精品久久| 久久久久久久精品妇女99| 精品久久久久久综合日本| 久久久亚洲AV波多野结衣| 青青青青久久精品国产 | 亚洲国产精品久久久久| 久久亚洲精品国产精品婷婷 | 久久亚洲国产精品123区| 欧美一区二区三区久久综| 久久福利片| 久久婷婷国产麻豆91天堂| 午夜人妻久久久久久久久| 久久精品国产福利国产琪琪| 久久国产欧美日韩精品| 99久久无色码中文字幕人妻| 精品久久综合1区2区3区激情| AAA级久久久精品无码片| 国产精品一区二区久久精品涩爱 | 97久久超碰国产精品旧版| 99久久做夜夜爱天天做精品| 久久99精品国产99久久6| 色偷偷888欧美精品久久久| 国产Av激情久久无码天堂| 久久综合给合久久狠狠狠97色69| 伊人久久国产免费观看视频| 久久久久人妻精品一区三寸蜜桃| 久久精品中文字幕久久| 久久免费精品一区二区| 韩国三级大全久久网站| 久久综合久久综合久久| 精品久久久久久国产三级| 久久精品亚洲福利| 亚洲国产一成久久精品国产成人综合 | 久久久久久亚洲Av无码精品专口 |