點擊上方藍色字體了解更多的嵌入式編程實用技能。
如果你覺得該文章對你有幫助,歡迎點贊+關注
在日常的開發工作中,我們通常使用 git 來管理代碼,當我們對代碼進行某項改動后,都可以通過git commit來對代碼進行提交,生成提交記錄,方便后續回溯。
規范的commit不僅有助于他人review, 還可以有效的輸出改動日志,通過一些工具就可以自動生成版本變動內容。
但是在日常工作中,大多數朋友對于commit信息都是簡單寫寫,沒有很好的重視,甚至說明是如何改的,這對于項目的管理和維護來說,無疑是很不友好的。
讓我們先來看一個不太規范的 commit 記錄:

看完后你感覺如何?能不能從每次commit中看出他為何提交,這種 commit 信息對于想要從中獲取有效信息的人來說無疑是一種致命的打擊。
那我們來看一個社區中比較流行的Angular規范的 commit 記錄(目前也是我在使用的):

看完是不是一目了然呢?
上圖中這種規范的 commit 信息首先提供了更多的歷史信息,方便快速瀏覽。其次,可以過濾某些 commit(比如文檔改動),便于快速查找信息。
每個 Git Commit 應該包含以下部分:
類型:表示此次提交的類型,如 feature(新功能)、bugfix(修復 bug)、docs(文檔更新)等。
范圍:指定此次提交影響的范圍,如模塊、組件、服務等。
描述:簡要描述此次提交的內容。
commit message 格式如下:
<type>[optional?scope]:?
#?空一行??
[optional?body]
#?空一行??
[optional?footer]type 用于表示此次改動的類型,目前常用的主要有以下幾種:
feat 新功能(feature)表示在代碼庫中新增了一個功能(這和語義化版本中的 MINOR 相對應)
fix 表示在代碼庫中修復了一個 bug(這和語義化版本中的 PATCH 相對應)
docs 文檔更新(documentation)
style (格式化, 缺失分號等; 不包括生產代碼變動)
refactor (重構代碼)
perf (性能優化)
test (添加缺失的測試, 重構測試, 不包括生產代碼變動)
chore (更新grunt任務等; 不包括生產代碼變動)
scope:一個可選的修改范圍,用于標識此次提交主要涉及到代碼中哪個模塊。
description:簡明扼要描述本次提交的目的(一般不超過30個字符比較好),首字母無需大寫,結尾不需要使用.。
optional body:詳細描述本次提交,比如此次變更的動機,如需換行,則使用 |。
optional footer:描述與之關聯的 issue 或 break change。
比如:

如果使用vscode工具的話,可以安裝插件 git-commit-plugin,一款自動生成規范git提交信息的插件。


規范的 Git Commit 是項目管理中的重要環節,Angular 團隊的提交規范為我們提供了一套行之有效的指導。通過遵循 Angular 團隊的規范,我們可以使項目提交信息更加清晰、易讀,提高團隊協作效率,以及增強項目維護的便捷性。