Git: 教你如何在Commit時有話可說

NewPickens 8年前發布 | 13K 次閱讀 Git 版本控制系統

不知道大家有沒有觀察過那些在Github上Star數位居前列的項目,它們無一例外的都擁有完善的文檔體系和高覆蓋的測試用例。要做到完善沒有規范肯定是不行的,代碼要有代碼的規范,協作要有協作的規范。我們今天要說的主題就是關于Git中記錄Commit Message的參考規范。先來看兩張圖,一張來自國際知名項目,一張是國內某知名項目(笑)。

國際知名項目AngularJS

國內知名項目MingGeJS

從上面兩張圖中,我想你已經能看出一些端倪來了吧,相較而言哪種更加能促進開發不言自明。當然,我舉這個國內知名項目比較極端,不過整體而言都普遍存在Commit Message比較隨意的現象。

Commit規范

順著思路,這一步應該給方案了,方案就是上圖AngularJS項目中用到的Git Commit Guidelines。

Commit Message 格式

<type>(<scope>): <subject>
<空行>
<body>
<空行>
<footer>

上面是一次Commit后Message格式規范,分成標題,內容詳情,結尾三個部分,各有各的用處,沒有多余項。

頭部即首行,是可以直接在頁面中預覽的部分,入上面圖中所示,一共有三個部分<type> ,<scope> ,<subject> ,含義分別如下

Type

  • feat:新功能(feature)

  • fix:修補bug

  • docs:文檔(documentation)

  • style: 格式(不影響代碼運行的變動)

  • refactor:重構(即不是新增功能,也不是修改bug的代碼變動)

  • test:增加測試

  • chore:構建過程或輔助工具的變動

Scope

用來說明本次Commit影響的范圍,即簡要說明修改會涉及的部分。這個本來是選填項,但從AngularJS實際項目中可以看出基本上也成了必填項了。

Subject

用來簡要描述本次改動,概述就好了,因為后面還會在Body里給出具體信息。并且最好遵循下面三條:

  • 以動詞開頭,使用第一人稱現在時,比如change,而不是changed或changes

  • 首字母不要大寫

  • 結尾不用句號(.)

Body

<body>里的內容是對上面subject 里內容的展開,在此做更加詳盡的描述,內容里應該包含修改動機和修改前后的對比。

Footer

footer里的主要放置 不兼容變更Issue關閉 的信息,參考下面兩個例子

來自: 微信

 本文由用戶 NewPickens 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!