1、前言
寫好git commit提交有什么好處呢?
查看提交的log也非常的優雅,這個就不多提了
方便查找日志記錄,通過簡單的過濾便能定位到具體想要查找的log
方便問題回溯,通過git log就能查找到當時提交的代碼文件,以及修改的代碼
其實如果使用過github的release, 可以直接根據feat和fix來過濾提取日志發布版本
接下來我就來實踐一下,首先我這里使用的是pnpm安裝依賴的。今天主要是在提交代碼時稍微自動化一點,并且讓提交規范統一一些。
具體操作的源碼項目github.com/aehyok/taro…[1]
2、commitizen插件
pnpmicommitizen-D
此時我們先git add .,然后就可以使用一下git cz,所以現在可以直接在package.json中添加一個scripts
//&&代表`gitadd.和`gitcz`兩個指令串行執行, //先執行前一個,執行完后再執行后一個 "git":"gitadd.&&gitcz"
那么接下來直接執行 pnpm git
輸入commit的提交信息,保存,關閉小窗,因為我這里用的是gitExtensions圖形操作程序,隨后git push提交即可,但是這樣其實只是換了一個命令而已,并沒有什么實質性的改變。那接下來就讓它改變一下吧
3、cz-customizable設置提交模板
pnpmicz-customizable-D
安裝完之后在package.json中添加如下節點
"config":{ "commitizen":{ "path":"node_modules/cz-customizable" } },
同時可以再根目錄創建.cz-config.js,這里有一份官網提供的模板github.com/leoforfree/…[2]
下面這個是我自己修改后的提交模板
module.exports = { // type 類型(定義之后,可通過上下鍵選擇) types: [ { value: 'feat', name: 'feat: 新增功能' }, { value: 'fix', name: 'fix: 修復 bug' }, { value: 'docs', name: 'docs: 文檔變更' }, { value: 'style', name: 'style: 代碼格式(不影響功能,例如空格、分號等格式修正)' }, { value: 'refactor', name: 'refactor: 代碼重構(不包括 bug 修復、功能新增)' }, { value: 'perf', name: 'perf: 性能優化' }, { value: 'chore', name: 'chore: 其他修改, 比如構建流程, 依賴管理、版本好修正.' } ], // scope 類型(定義之后,可通過上下鍵選擇) scopes: [ ['components', '組件相關'], ['hooks', 'hook 相關'], ['utils', 'utils 相關'], ['element-ui', '對 element-ui 的調整'], ['styles', '樣式相關'], ['deps', '項目依賴'], ['auth', '對 auth 修改'], ['other', '其他修改'], // 如果選擇 custom,后面會讓你再輸入一個自定義的 scope。也可以不設置此項,把后面的 allowCustomScopes 設置為 true ['custom', '以上都不是?我要自定義'] ].map(([value, description]) => { return { value, name: `${value.padEnd(30)} (${description})` } }), // 是否允許自定義填寫 scope,在 scope 選擇的時候,會有 empty 和 custom 可以選擇。 // allowCustomScopes: true, // allowTicketNumber: false, // isTicketNumberRequired: false, // ticketNumberPrefix: 'TICKET-', // ticketNumberRegExp: '\d{1,5}', // 針對每一個 type 去定義對應的 scopes,例如 fix /* scopeOverrides: { fix: [ { name: 'merge' }, { name: 'style' }, { name: 'e2eTest' }, { name: 'unitTest' } ] }, */ // 交互提示信息 messages: { type: '確保本次提交遵循:前端代碼規范! 選擇你要提交的類型:', scope: ' 選擇一個 scope(可選):', // 選擇 scope: custom 時會出下面的提示 customScope: '請輸入自定義的 scope:', subject: '填寫簡短精煉的變更描述: ', body: '填寫更加詳細的變更描述(可選)。使用 "|" 換行: ', breaking: '列舉非兼容性重大的變更(可選): ', footer: '列舉出所有變更的 ISSUES CLOSED(可選)。例如: #31, #34: ', confirmCommit: '確認提交?' }, // 設置只有 type 選擇了 feat 或 fix,才詢問 breaking message allowBreakingChanges: ['feat', 'fix'], // 跳過要詢問的步驟 skipQuestions: ['scope', 'body', 'breaking', 'footer'], subjectLimit: 100, // subject 限制長度 breaklineChar: '|' // 換行符,支持 body 和 footer // footerPrefix : 'ISSUES CLOSED:' // askForBreakingChangeFirst : true, }
運行 pnpm git
根據指引提示,然后輸入提交信息,推送到服務器就完成了,查看git log可以發現
4、總結
其實還可以將腳本修改一下
"git":"gitadd.&&gitcz&&gitpush"
這樣三個指令會串行執行,一個接著一個執行,如果提交沒什么問題的話,很自然就推送到遠端了。
審核編輯:湯梓紅
-
指令
+關注
關注
1文章
580瀏覽量
35413 -
源碼
+關注
關注
8文章
586瀏覽量
28683 -
代碼
+關注
關注
30文章
4575瀏覽量
67135 -
Git
+關注
關注
0文章
195瀏覽量
15475
原文標題:天天提交代碼,git commit 能規范一下嗎?
文章出處:【微信號:技術讓夢想更偉大,微信公眾號:技術讓夢想更偉大】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論