Git Commit提交規范和IDEA插件Git Commit Template的使用


Git是最牛逼的開源分布式版本控制系統,日常開發中常用來管理代碼提交、恢復、追蹤,是團隊開發最常用的一個代碼管理工具。

在我們修改了代碼並且提交之前,常會使用git commit -m 'change’命令來描述我們代碼改動的內容,但是很多都不規范,隨處可見的 git commit -m ‘update’,以致於不能清晰地知道每次提交代碼的變更內容,所以需要一種規范來管理代碼提交的內容。

一、Git Commit message規范
常用的Git Commit message規范采用的是Angular 規范。

本文參考阮老師的文章介紹:

http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html.

Angular規范中定義的格式有3個內容:

Header
Body
Footer

1、 Header

Header部分有3個字段: type(必需), scope(可選), subject(必需)

type(必需) : Type of change:commit的類別;
scope(可選):Scope of this change:此次commit的影響模塊;
subject(必需):Short description:簡短的描述此次代碼變更的主要內容

(1)type

type用於說明commit的類別,常用的標識如下:

feat:新功能(feature)
fix:修補bug
docs:文檔(documentation)
style: 格式(不影響代碼運行的變動,空格,格式化,等等)
refactor:重構(即不是新增功能,也不是修改bug的代碼變動
perf: 性能 (提高代碼性能的改變)
test:增加測試或者修改測試
build: 影響構建系統或外部依賴項的更改(maven,gradle,npm 等等)
ci: 對CI配置文件和腳本的更改
chore:對非 src 和 test 目錄的修改
revert: Revert a commit
最常用的就是feat合fix兩種type;

(2)scope

scope用於說明 commit 影響的范圍,比如數據層、控制層、視圖層等等,視項目不同而不同。

(3)subject

subject是 commit 目的的簡短描述,不超過50個字符,主要介紹此次代碼變更的主要內容。

舉個例子:
eg: feat(訂單模塊):訂單詳情接口增加訂單號字段

其中, feat對應type字段;訂單模塊對應scope(若果scope有內容,括號就存在);“訂單詳情接口增加訂單號字段”對應subject,簡要說明此次代碼變更的主要內容。

2、Body
Body 部分是對本次 commit 的詳細描述,可以分成多行。

如:

(1)增加訂單號字段;

(2)增加了訂單退款接口;

日常項目開發中,如果Header中subject已經描述清楚此次代碼變更的內容后,Body部分就可以為空。

3、Footer
(1)不兼容變動

(2)關閉 Issue

日常項目中開發,Footer不常用,可為空。

4、Revert
若需要撤銷上一次的commit,header部分為:revert: 上一次commit的header內容;

body部分為:This reverts commit xxx,xxx是上一次commit對應的SHA 標識符。

二、IDEA插件Git Commit Template使用
在iTerm中使用命令行的方式提交代碼,我們可以使用Commitizen來撰寫合格的 Commit message,具體使用見:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html。

本文主要介紹如何使用IDEA中的插件Git Commit Template來撰寫Commit message。

首先安裝和下載插件Git Commit Template

安裝后重啟IDEA,更改代碼,點擊IDEA中的VCS版本控制按鈕:

 

 

 

點擊Commit按鈕:

 

 選擇Type,填寫相應內容,最后點擊提交即可:

 

 

參考:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM