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文章
624瀏覽量
37631 -
源碼
+關注
關注
8文章
688瀏覽量
31413 -
代碼
+關注
關注
30文章
4974瀏覽量
74226 -
Git
+關注
關注
0文章
207瀏覽量
17014
原文標題:天天提交代碼,git commit 能規范一下嗎?
文章出處:【微信號:技術讓夢想更偉大,微信公眾號:技術讓夢想更偉大】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
開發者必備的8 個 git 小技巧
git之推送提交
Git工程實踐(一)巧用commit message
如何跟遠程倉庫一起協作提交代碼
45個日常用git合代碼的經典操作場景
45個Git經典操作場景
git rebase和git merge的區別
git中如何查看提交歷史
git基本操作命令用法
git commit代碼提交規范
評論