• <abbr id="chdyf"></abbr>
    <ruby id="chdyf"><acronym id="chdyf"><meter id="chdyf"></meter></acronym></ruby>
    <bdo id="chdyf"></bdo>
    <dfn id="chdyf"><menu id="chdyf"></menu></dfn>
    1. <menuitem id="chdyf"></menuitem><strong id="chdyf"><menu id="chdyf"></menu></strong>

      <rt id="chdyf"><menu id="chdyf"></menu></rt>
      成人小说一区二区三区,伊人精品成人久久综合全集观看,久久HEZYO色综合,中文字幕精品人妻熟女,影音先锋成人网站,我要看免费一级毛片,中国女人做爰A片,中文字幕av久久爽Av

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

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

      隨著項目體積的增加,參與到項目中的同學(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)隊的需要,自定義 adapter

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

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

      優(yōu)點 2: 無開發(fā)成本

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

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

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

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

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

      代碼實現(xiàn)

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

      在項目根目錄下創(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;"/>

      日歷

      鏈接

      個人資料

      存檔