Git?Commitizen提交規(guī)范化自動生成changelog文件
背景介紹
我們在使用一個比較厲害的框架或者庫的時候,經(jīng)常可以看到 CHANGELOG.md,維護(hù)版本更新內(nèi)容。
很多時候,特別是在你開源自己的一個工具或庫時,這種版本更新內(nèi)容是非常有必要的,如果用戶使用了你的輪子,連更新內(nèi)容都不知道,試問你敢用嗎? 那么這些都是怎么寫的呢?每次發(fā)版都要手動記錄嗎?顯然不是,這些都是靠提條記錄生成的。
比如我們在 github 上隨便找一個庫:https://github.com/vuepress/vuepress-next,可以看到它就有這個文件
點進(jìn)去可以查看具體內(nèi)容:注意我畫紅線的這 2 個,我們是可以跳到對應(yīng) issue 和對應(yīng)代碼提交記錄的。
Commitizen 介紹
1、團(tuán)隊約束
生成這種 CHANGELOG 有一個前提,就是團(tuán)隊成員都按規(guī)矩提交。人不是機(jī)器,習(xí)慣不養(yǎng)成往往會忽略,這種約束還是讓工具來做吧。
2、Commitizen 是一個撰寫符合 Commit Message 格式標(biāo)準(zhǔn)的一款工具,至于標(biāo)準(zhǔn) Commit Message 格式標(biāo)準(zhǔn),可以百度一下或者一會提交示例介紹。
3、局部安裝 commitizen:npm install commitizen -D
4、執(zhí)行腳本設(shè)置 package.json
在項目根目錄下運行下面命令,使其支持angular的 Commit message 格式
// 如果你使用npm執(zhí)行下面命令: commitizen init cz-conventional-changelog --save-dev --save-exact // 如果使用yarn,則執(zhí)行下面: commitizen init cz-conventional-changelog --yarn --dev --exact
注意,–save-exact 相當(dāng)于鎖定版本號
此時 package.json 新增了這部分內(nèi)容
{ "scripts": { "commit": "cz" }, "devDependencies": { "commitizen": "^4.2.4", "conventional-changelog-cli": "^2.2.2" }, "config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" } } }
5、修改代碼提交過程介紹
這時候就可以提交嘗試下,提交的時候直接執(zhí)行剛才添加的腳本:yarn commit
或者 npm run commit
,然后就會看到讓你選擇的各種頁面,選擇即可
第一步: 選擇這次提交的內(nèi)容類型:提交類型是以后生成 CHANGELOG 分類題目
第二步: 這次提交影響范圍
第三步:簡短描述:如果你使用 gitlab 或者 github 進(jìn)行遠(yuǎn)程分支 Merge requset 的時候,這個就是默認(rèn)的title
第四步:詳細(xì)描述
第五步:是否重大更新(改變):一般具有重要的大版本或者破壞原來代碼的時候需要標(biāo)記一下
第六步:這次提交對哪些打開的 issue 有影響:類似于 github 開源模式,代碼的維護(hù)不論需求還是 fix都有對應(yīng)的issue討論進(jìn)行code的支撐。git message 這一步就是為了關(guān)聯(lián)issue。如果選擇是,可寫上相關(guān)issue 對應(yīng)號碼。(也就是上面的那 2 個可以跳轉(zhuǎn)的地方)
自動產(chǎn)生CHANGELOG
那么正規(guī)的寫提交記錄最后就是為了讓團(tuán)隊其他人看懂,還有一個目的是為了更規(guī)范的產(chǎn)生CHANGELOG,下面看看自動產(chǎn)生CHANGELOG的步驟。
1、安裝產(chǎn)生 changelog 插件 conventional-changelog-cli:
npm install -D conventional-changelog-cli
2、在 package.json 添加腳本
"changelog": "conventional-changelog -p angular -u -i CHANGELOG.md -s -r 0"
3、執(zhí)行腳本,查看結(jié)果:yarn changeLog
或 npm run changeLog
最后即可生成一個提交日志文件
我這里測試了下:
feat 是 npm run commit 按步驟提交的
fix 是直接 git commit -m "fix: test 符號" 提交的
可以看到都生成了日志文件,所以如果團(tuán)隊每個人都能按 Commit 規(guī)范提交的話,第一步 Commitizen 約束是可以不需要的(但是會存在一個問題就是不能實現(xiàn) issue 與 commitId 的代碼提交記錄的聯(lián)動了)。
以上就是Git Commitizen提交規(guī)范化自動生成changelog文件的詳細(xì)內(nèi)容,更多關(guān)于Git Commitizen提交規(guī)范的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
網(wǎng)站開發(fā)中的文件存儲目錄結(jié)構(gòu)的探討
網(wǎng)站應(yīng)用中經(jīng)常會有文件存儲的需求,目錄結(jié)構(gòu)該怎么建才好呢?讓我們來做下分析2010-07-07在IDEA中配置SFTP遠(yuǎn)程Linux服務(wù)器系統(tǒng)的實現(xiàn)
本文主要介紹了在IDEA中配置SFTP遠(yuǎn)程Linux服務(wù)器系統(tǒng)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Git pull(拉取)及push(上傳)相關(guān)命令介紹
這篇文章主要介紹了Git pull(拉取),push(上傳)相關(guān)命令,git是一個非常好用的分布式版本管理工具,Git是去中心化,每一個分支都是一個中心,并且支持本地倉庫存儲,像如今很多大公司都用git做版本控制。有興趣的話來學(xué)習(xí)一下2020-07-07VS2019創(chuàng)建MFC程序的實現(xiàn)方法
這篇文章主要介紹了VS2019創(chuàng)建MFC程序的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08