對於怎麼寫Git Commit
信息,每一個人都有本身的見解,每一個團隊也有本身的規定。這並無一個明確的標準,今天也不是來討論標準,而是介紹一個相對優雅的方式。css
[ac7536f1f] update some files [cdc6708ad] change style [93d4b716d] remove css files [dfb928e85] update readme 複製代碼
以前,我寫提交信息的時候,只會寫主題信息。可能這樣寫的弊端你們也看到了,以後會看這些message
的時候,並不知道這些提交究竟是什麼功能的。甚至有偷懶的同窗可能會直接這麼寫 [52a9e19] Update
,能看懂這個commit message
是update
什麼嗎?可能在過段時間,這位同窗也不知道是提交的什麼了。java
對於Git Commit Message
並明確的標準,但也有一些好的原則:webpack
本文開頭的第一個代碼片斷是我以前提交的提交記錄,如今來看的話,我已經不知道我寫了什麼?若是要知道到底提交了什麼,涉及哪些功能,也只有藉助版本工具了。git
提交信息和代碼同樣,不僅是給本身看,也是給團隊中其餘人看的,同時也是對提交信息的註釋。在我過往經歷中,看到過不少小夥伴爲了方便隨便寫提交信息。修復一個登錄問題,提交信息卻只寫了Fix bug
。這就致使了對於代碼的回溯和問題排查十分困難,時間久了甚至只能一個一個Commit
的排查。要記住一點:提交信息不僅是給本身看的,也是給團隊看的。web
使用編輯器
實現單點登錄接口工具
替代實現新功能測試
有個小建議,你們能夠在提交代碼的時候,若是實在是想不到,能夠直接使用需求描述做爲提交信息。flex
先來對提交代碼的緣由進行分類,大體能夠分爲幾類:新功能、代碼升級或變動、Bug修復、文檔編寫、主題UI變動和測試用例。提交代碼的緣由不外乎就是這幾種,因此如今給這些緣由相應加上一個標識,就變成了以下列表。url
使用
Feat:實現單點登錄接口
替代實現單點登錄接口
想象一下,若是一條提交信息有幾十個甚至近百個字,是否是很累。做爲一個能偷懶就偷懶的程序猿,固然不可能寫這麼長的提交信息的。只要在可以正確表達出本次提交所表明含義的狀況下,字數儘可能少,最好不超過50個字符。
使用
Feat:實現單點登錄接口
替代實現單點登錄接口,並修改了Login.java...(此處省略100字)
篇幅緣由,錯誤示例就用省略號(…)來代替。能夠看到綠色示例已經正確可以表達本次提交的主題了,因此徹底沒有必要寫這麼多字。
描述是對提交信息的補充說明或詳細描述,這部份內容不多有同窗會注意到。但有時候描述卻也不可缺乏,好比說當合並代碼存在衝突的時候,提交者就有必要將發生衝突的文件寫在描述信息裏面。
描述信息能夠分爲多行,能夠在第72
個字符的地方進行換行。
使用
Upgrade: Update meta
Upgrade: Update meta
有人會說中文本就是母語,爲何不建議使用中文。在團隊開發中,使用中文可以表達的更清楚明白。且一個團隊裏面,並非全部的人英文都很好,若是要使用英文則須要保證你寫的提交信息其餘人也能看懂,不然就會拔苗助長了。
你們或多或少都使用過Windows
來進行開發,當使用過 cmd
來查看git log
的時候,中文是亂碼的。這實在是太不友好,若是要正常顯示還要一頓騷操做。這也就是爲何建議儘可能使用英文了。
其實還有一個緣由,若是咱們寫一個開源項目的話,提交到GitHub
上面就是面向全世界的開發者,那麼提交信息使用英文就十分友好了(說不定項目就火了呢)。
若是要使用英文,那麼就得注意一下提交的文本格式。英文的大小寫和符號有無都會影響提交信息的美觀。那咱們就要對英文格式作一些約束。
使用
Fix: Fix can't login bug
替代Fix:修復不能登陸的bug
文章持續更新,掃描下方二維碼關注公衆號第一時間閱讀
本文首發於: https://baozi.fun/2020/07/10/write-elegant-commit-message
本文使用 mdnice 排版