1. 背景Git 是目前世界上最先進的分布式版本控制系統,在我們平時的項目開發中已經廣泛使用。而當我們使用Git提交代碼時,都需要寫Commit Message提交說明才能夠正常提交。 git commit -m "提交" 然而,我們平時在編寫提交說明時,通常會直接填寫如"fix"或"bug"等不規范的說明,不規范的提交說明很難讓人明白這次代碼提交究竟是為了什么。而在工作中,一份清晰簡介規范的 Commit Message 能讓后續代碼審查、信息查找、版本回退都更加高效可靠。因此我們需要一些工具來約束開發者編寫符合規范的提交說明。 2. 提交規范那么,什么樣的提交說明才能符合規范的說明呢?不同的團隊可以制定不同的規范,當然,我們也可以直接使用目前流行的規范,比如[Angular Git Commit Guidelines。接下來將會對目前流行的Angular提交規范進行介紹。 2.1 提交格式符合規范的Commit Message的提交格式如下,包含了頁眉(header)、正文(body)和頁腳(footer)三部分。其中,header是必須的,body和footer可以 忽略。 <type>(<scope>): <subject>// 空一行<body>// 空一行<footer> 2.2 頁眉設置頁眉(header)通常只有一行,包括了提交類型(type)、作用域(scope)和主題(subject)。其中,type和subject是必須的,scope是可選的。 2.2.1 提交類型 提交類型(type)用于說明此次提交的類型,需要指定為下面其中一個: 2.2.2 作用域 作用域(scope)表示此次提交影響的范圍。比如可以取值api,表明只影響了接口。 2.2.3 主題 主題(subject)描述是簡短的一句話,簡單說明此次提交的內容。 2.3 正文和頁腳正文(body)和頁眉(footer)這兩部分不是必須的。 如果是破壞性的變更,那就必須在提交的正文或腳注加以展示。一個破壞性變更必須包含大寫的文本 BREAKING CHANGE,緊跟冒號和空格。腳注必須只包含 BREAKINGCHANGE、外部鏈接、issue引用和其它元數據信息BREAKING CHANGE、外部鏈接、issue 引用和其它元數據信息BREAKINGCHANGE、外部鏈接、issue引用和其它元數據信息。例如修改了提交的流程,依賴了一些包,可以在正文寫上:BREANKING CHANGE:需要重新npm install,使用npm run cm代替git commit。 下面給出了一個Commit Message例子,該例子中包含了header和body。 chore: 引入commitizenBREANKING CHANGE:需要重新npm install,使用npm run cm代替git commit 當然,在平時的提交中,我們也可以只包含header,比如我們修改了登錄頁面的某個功能,那么可以這樣寫 Commit Message。 feat(登錄):添加登錄接口 3.使用Git命令行提交信息為了規范commit信息,可以配置一個全局的 commit message template ,所有提交的 commit message 都按照這個配置來寫 首先新建模板文件: 在任意目錄下新建.getmessage.txt ,填入以下模板 # <類型>:(影響范圍) <主題> # <body># <footer># 類型字段包含: # feat:新功能(feature) # fix:修復bug # doc:文檔(documentation) # style: 格式化 ESLint調整等(不影響代碼運行的變動) # refactor:重構(即不是新增功能,也不是修改bug的代碼變動) # test:增加測試 # build: 影響構建系統或外部依賴項的更改(maven,gradle,npm 等等) # ci: 對CI配置文件和腳本的更改 # chore:對非 src 和 test 目錄的修改 # revert: Revert a commit # 影響范圍: # 用于說明 commit 影響的范圍,比如修改的登錄頁、賬戶中心頁等 # 主題: # commit目的的簡短描述,不超過50個字符 # Body 部分是對本次 commit 的詳細描述,可以分成多行 # Footer用來關閉 Issue或以BREAKING CHANGE開頭,后面是對變動的描述、 # 以及變動理由和遷移方法 3. Commitizen雖然有了規范,但是還是無法保證每個人都能夠遵守相應的規范,因此就需要使用一些工具來保證大家都能夠提交符合規范的Commit Message。常用的工具包括了可視化工具和信息交互工具,其中Commitizen是常用的Commitizen工具,接下來將會先介紹Commitizen的使用方法。 3.1 什么是CommitizenCommitizen是一個撰寫符合上面Commit Message標準的一款工具,可以幫助開發者提交符合規范的Commit Message。 3.2 安裝Commitizen可以使用npm安裝Commitizen。其中,cz-conventional-changelog是本地適配器。 npm install commitizen cz-conventional-changelog --save-dev 3.3 配置Commitizen安裝好Commitizen之后,就需要配置Commitizen,我們需要在package.json中加入以下代碼。其中,需要增加一個script,使得我們可以通過執行npm run cm 來代替git commit,而path為cz-conventional-changelog包相對于項目根目錄的路徑。 ”script": { "cm: "git-cz"},"config": {"commitizen": {"path": "./node_modules/cz-conventional-changelog"}} 配置完成之后,我們就可以通過執行npm run cm來代替git commit,接著只需要安裝提示,完成header、body和footer的編寫,就能夠編寫出符合規范的 Commit Message。 4. vscode可視化提交工具除了使用Commitizen信息交互工具來幫助我們規范Commit Message之外,我們也可以使用編譯器自帶的可視化提交工具。接下來,將會介紹VSCode可視化提交工具的使用方法。 在VSCode的EXTENSIONS中找到 git-commit-plugin插件,點擊install進行安裝。 安裝完成之后,可以通過git add添加要提交的文件,接著,在Source Control點擊show git commit template圖標,開始編寫Commit Message信息。 接下來只需要按照指引進行Commit Message的編寫。 當編寫完成之后,可以得到符合規范的Commit Message,這個時候就可以放心將Commit Message及所修改的文件進行提交啦。 5. idea可視化工具idea 安裝此插件:Git Commit Template
影響范圍: 用于說明commit影響的范圍,比如 修改的登錄頁,賬戶中心等 Body 部分是對本次 commit 的詳細描述,可以分成多行 Footer用來關閉 Issue或以BREAKING CHANGE開頭,后面是對變動的描述、 以及變動理由和遷移方法 https://www./show/4/705714.html https://blog.csdn.net/fd2025/article/details/124543690 |
|