生活不能隨意過,代碼也不能隨意寫。
前一篇文章咱們已經把項目搭建好了,那是否是立刻就開始寫頁面了呀?vue
NO!git
不管在哪家公司,都會有相應的代碼規範。新入職的員工每每第一步就要接受代碼規範的學習。程序員
既然是實戰項目,咱們也得在寫頁面以前把相關的規範配置作好。github
今天咱們先來看看項目中git的使用及相關規範吧。vue-cli
git blame
時能夠快速明白代碼用意;採用三段式,v版本.里程碑.序號,如v1.2.3shell
版本正式發佈後,須要生產changelog文檔,便於後續問題追溯。npm
每次提交,Commit message 都包括三個部分:Header,Body 和 Footer。json
<type>(<scope>): <subject> // 空一行 <body> // 空一行 <footer>
注意冒號後面有空格。架構
其中,Header 是必需的,Body 和 Footer 能夠省略。工具
Header部分只有一行,包括三個字段:type
(必需)、scope
(可選)和subject
(必需)。
表明某次提交的類型,好比是修復一個bug仍是增長一個新的feature。
全部的type類型以下:
scope用於說明 commit 影響的範圍,好比數據層、控制層、視圖層等等,視項目不一樣而不一樣。
subject是 commit 目的的簡短描述,不超過50個字符。
其餘注意事項:
Body 部分是對本次 commit 的詳細描述,能夠分紅多行。
須要描述的信息包括:
有兩個注意點:
若是須要的話能夠添加一個連接到issue地址或者其它文檔,或者關閉某個issue。
既然規範已經有了,那咱們就按照規範開始實戰吧。
首先咱們新建兩個分支:
git branch develop
git branch feature-git提交規範
而後咱們切換到新建的功能分支:
git checkout feature-git提交規範
接下來咱們就來添加git提交信息效驗的配置。
npm install -g commitizen
mac下需在前面加sudo
commitizen init cz-conventional-changelog --save --save-exact
配好後,以後用到git commit
命令時,改成使用git cz
。
這時,就會出現選項,用來生成符合格式的 Commit message。
好,咱們把剛剛的改動提交一下吧。
先把修改加入暫存
git add .
使用git cz
代替 git commit
git cz
結果以下:
由於咱們的commit使用嚮導生成徹底符合規範,因此發佈新版本時, 能夠用腳本自動生成Change log。
生成的文檔包括如下三個部分:
每一個部分都會羅列相關的 commit ,而且有指向這些 commit 的連接。
固然,生成的文檔容許手動修改,因此發佈前,你還能夠添加其餘內容。conventional-changelog
就是生成 Change log 的工具.
運行下面的命令便可:
npm install -g conventional-changelog-cli
conventional-changelog -p angular -i CHANGELOG.md -s -r 0
這時你會發現項目目錄裏面多了CHANGLOG.md文件
咱們能夠把命令放在script裏面:
修改package.json文件,在script中添加:
"version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md"
咱們作一次提交來試試看:
git add . git commit -m "feat: 添加生成changelog功能"
而後運行:
npm run version
以後咱們看到CHANGELOG.md文件有了咱們的提交日誌:
注意,我以前提交過一次,可是type使用的是build,因此不會在日誌中體現。
最後咱們再把CHANGELOG.md的變化作一次提交:
git commit -m "docs: 添加CHANGELOG.md文件"
細心的朋友可能已經發現,這兩次提交我並無使用git cz
而是爲了方便直接使用了git commit -m ""
這種形式,時刻記着提交信息規範的話使用這種方式也沒問題,可是有時候不免失誤,好比不當心把feat打成feet,那如何防止失誤呢?來看看吧。
npm install --save-dev @commitlint/{cli,config-conventional} npm install --save-dev husky
@vue/cli-service 也會安裝 yorkie,但yorkie fork 自 husky 且並不和以後的版本兼容。因此這裏我仍是安裝了husky
commitlint.config.js
module.exports = { extends: ["@commitlint/config-conventional"], rules: { "type-enum": [ 2, "always", ["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"] ], "subject-full-stop": [0, "never"], "subject-case": [0, "never"] } };
"husky": { "hooks": { "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS" } }
這樣就配好了,如今咱們來測試一下:
上圖能夠看到,當我type輸錯時會報錯,這樣咱們就不怕不當心打錯本身沒注意到的狀況啦。
修改以後成功提交。
最後咱們把咱們今天的工做提交到github上吧
git checkout develop git merge feature-git代碼提交信息審查 git checkout master git merge develop git push
今天花了較大篇幅講解如何爲什麼配置GIT提交規範及如何配置,實在是小肆深知在實際工做過程當中遵照規範是多麼重要的一件事.
尤爲是團隊開發或是開源項目,能夠說一個程序員的代碼素質從他的每一次提交記錄就能體現一二,因此還望你們能重視起來。
接下來幾篇小肆會爲你們帶來代碼效驗、自動格式化、手機端適配、判斷訪問客戶端類型等前期準備工做,關注個人公衆號"技術放肆聊"持續關注吧!