Git工程實踐(一)巧用commit message

摘要: 你們都知道全部的版本控制系統好比svn,git等設計的核心價值之一就是爲了讓代碼變動有跡可循,而commit mesage的價值在於讓有跡可循的代碼對人類更加友好,一般一個恰如其分的commit message表達的信息每每先於代碼。git

 

背景api

你們都知道全部的版本控制系統好比svn,git等設計的核心價值之一就是爲了讓代碼變動有跡可循,而commit mesage的價值在於讓有跡可循的代碼對人類更加友好,一般一個恰如其分的commit message表達的信息每每先於代碼。markdown

而現實的工程實踐中,尤爲是大型分佈式協做的團隊,因開發成員背景、習慣、經驗多差別性,commit message的風格良莠不齊。分佈式

那麼有沒有優雅而簡單方式將commit message按照工程標準來落地呢?svn

下面分享一個git commit message的實踐,其核心是經過git commit template標準化comments,但願能夠拋磚引玉。設計

配置commit message template版本控制

經過配置相同的git commit template & markdown syntax 來標準化git message。步驟以下:code

  1. 進入~/ 目錄,新增__.gitmessage, 內容以下:__

brief introduction. #brief introdction 必填,概要描述變動內容。 #change item list 選填,針對變動不一樣模塊/業務進行分條描述,使用markdown語法。 #demo #add xxx open api. #- add xxx api. #- add xxx api. #- add xxx api.blog

2.編輯.gitconfig文件,新增.gitmessage模版配置。開發

[commit]

template = ~/.gitmessage

後續在提交代碼時候(使用git commit沒有指定-m參數)git message將會自動按照模版格式生成。效果以下:

實踐建議

  • 正式的commit儘可能不要使用 git commit -m指定message信息,避免生成的git log可讀性差。
  • commit message 格式優先使用markdown格式,生成的格式將更優雅,經過git log查看可讀性更佳。
  • 較大feature發佈,git message儘量豐富,經過概要+變動列表的格式表達,如上圖。
  • commit mesaage儘可能使用英文。

一些思考

  • 自動化視角,經過git commit template 自動生成comments模版的方式,能夠在必定程度減小漏填AoneID的狀況,同時能夠提高commit message質量,若是要實現嚴格管控能夠增長githook在checkin以前增長校驗,或者接入持續集成在靜態檢測階段校驗git commit log的有效性。
  • 工程視角,git comment, code comment即代碼,應該以標準優雅的方式在團隊傳承。

 

原文連接

閱讀更多幹貨好文,請關注掃描如下二維碼:

相關文章
相關標籤/搜索