摘要:隨著團(tuán)隊(duì)的變大,最近在開發(fā)過程中,越來(lái)越感覺到的重要性。注意年月日,阮一峰老師寫了一篇和編寫指南,本文主要來(lái)源于這篇文章,只是針對(duì)我們的團(tuán)隊(duì),進(jìn)行了一些改造和簡(jiǎn)化,以及對(duì)一些阮老師沒有提及的細(xì)小之處進(jìn)行了指出。
隨著團(tuán)隊(duì)的變大,最近在開發(fā)過程中,越來(lái)越感覺到commit log的重要性。之前的時(shí)候,團(tuán)隊(duì)內(nèi)有人寫中文log,有人寫英文log;有人寫的還算清晰,有人一筆更新bug就概括全貌。這些良莠不齊的commit log充斥在我們的項(xiàng)目中,不僅影響了查閱的效果,還會(huì)對(duì)code review產(chǎn)生負(fù)面的影響。因此,本文是意圖從commit log的書寫規(guī)范入手,并提供相應(yīng)的解決方案。
注意:2016年1月6日,阮一峰老師寫了一篇《Commit message 和 Change log 編寫指南》,本文主要來(lái)源于這篇文章,只是針對(duì)我們的團(tuán)隊(duì),進(jìn)行了一些改造和簡(jiǎn)化,以及對(duì)一些阮老師沒有提及的細(xì)小之處進(jìn)行了指出。
1. 書寫規(guī)范經(jīng)過一番調(diào)研,因?yàn)槲覀兪切F(tuán)隊(duì),需要快速迭代,容易上手,所以對(duì)阮老師提到的commit log規(guī)范進(jìn)行了簡(jiǎn)化,具體如下:
1.1 type:
提交 commit 的類型,包括以下幾種
feat: 新功能
fix: 修復(fù)問題
docs: 修改文檔
style: 修改代碼格式,不影響代碼邏輯
refactor: 重構(gòu)代碼,理論上不影響現(xiàn)有功能
perf: 提升性能
test: 增加修改測(cè)試用例
revert: 回退,建議直接使用Github Desktop回退,而不是使用命令
1.2 subject用一句話清楚的描述這次提交做了什么。書寫要遵循以下四種規(guī)則:
格式盡量使用謂賓,使用謂賓不通順時(shí),可以使用主謂,例如:
謂賓:修復(fù)xxxx
主謂:中間件支持xxxx
除了名稱之外,描述盡可能使用中文,方便不同開發(fā)者理解
結(jié)尾不加句號(hào)
描述控制在20個(gè)漢字以內(nèi)
1.3 body對(duì)本地提交的詳細(xì)描述,不建議。我們建議多次少量提交,而不是一次巨量的提交,有助于revert和code review,也對(duì)災(zāi)難存儲(chǔ)有容災(zāi)。
2. 撰寫工具有工具輔助,一定比手寫好,這里我們使用Commitizen這個(gè)庫(kù)。
安裝命令:
cd 項(xiàng)目目錄 npm install -g commitizen commitizen init cz-conventional-changelog --save --save-exact // 項(xiàng)目做些更改之后 git add . git cz
安裝完畢之后,使用git cz來(lái)代替git commit命令即可,新的commit log提交界面會(huì)如下所示:
寫完了之后的commit log如下圖所示:
是不是比之前的commit log看起來(lái)清晰很多?
注意:
git bash在windows下不能通過箭頭符號(hào)上下移動(dòng)選擇,這時(shí)候我們可以下載Cmder來(lái)作為我們的命令行工具。
1. commit log 我用20個(gè)字描述不清楚怎么辦?
我們期望盡可能多次的提交,一個(gè)feature提交一次,不要出現(xiàn)積攢多個(gè)feature提交情況,既不有利于code review,也不有利于代碼revert
2. 為什么不使用強(qiáng)制驗(yàn)證手段來(lái)限制commit log的格式?
盡管沒有使用自動(dòng)化驗(yàn)證的手段(阮老師的文章中提到了,可以自行查看),但是如果不符合書寫邏輯的話,code reviewer不應(yīng)該讓其merge request到dev分支中。這一塊我覺得天豬說的很有道理,通過人工的手段去實(shí)現(xiàn)這種驗(yàn)證,這也是為了大家養(yǎng)成一個(gè)良好的代碼習(xí)慣。
《Commit message 和 Change log 編寫指南》
《代碼貢獻(xiàn)規(guī)范》
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95807.html
摘要:隨著團(tuán)隊(duì)的變大,最近在開發(fā)過程中,越來(lái)越感覺到的重要性。注意年月日,阮一峰老師寫了一篇和編寫指南,本文主要來(lái)源于這篇文章,只是針對(duì)我們的團(tuán)隊(duì),進(jìn)行了一些改造和簡(jiǎn)化,以及對(duì)一些阮老師沒有提及的細(xì)小之處進(jìn)行了指出。 隨著團(tuán)隊(duì)的變大,最近在開發(fā)過程中,越來(lái)越感覺到commit log的重要性。之前的時(shí)候,團(tuán)隊(duì)內(nèi)有人寫中文log,有人寫英文log;有人寫的還算清晰,有人一筆更新bug就概括全貌...
摘要:集成測(cè)試完成后,由運(yùn)維同學(xué)從發(fā)起一個(gè)到分支,此時(shí)會(huì)會(huì)運(yùn)行單元測(cè)試,構(gòu)建鏡像,并發(fā)布到預(yù)發(fā)布環(huán)境測(cè)試人員在預(yù)發(fā)布環(huán)境下再次驗(yàn)證功能,團(tuán)隊(duì)做上線前的其他準(zhǔn)備工作運(yùn)維同學(xué)合并,將為本次發(fā)布的代碼及鏡像自動(dòng)打上版本號(hào)并書寫,同時(shí)發(fā)布到生產(chǎn)環(huán)境。 云原生 (Cloud Native) 是伴隨的容器技術(shù)發(fā)展出現(xiàn)的的一個(gè)詞,最早出自 Pivotal 公司(即開發(fā)了 Spring 的公司)的一本技術(shù)小...
摘要:集成測(cè)試完成后,由運(yùn)維同學(xué)從發(fā)起一個(gè)到分支,此時(shí)會(huì)會(huì)運(yùn)行單元測(cè)試,構(gòu)建鏡像,并發(fā)布到預(yù)發(fā)布環(huán)境測(cè)試人員在預(yù)發(fā)布環(huán)境下再次驗(yàn)證功能,團(tuán)隊(duì)做上線前的其他準(zhǔn)備工作運(yùn)維同學(xué)合并,將為本次發(fā)布的代碼及鏡像自動(dòng)打上版本號(hào)并書寫,同時(shí)發(fā)布到生產(chǎn)環(huán)境。 云原生 (Cloud Native) 是伴隨的容器技術(shù)發(fā)展出現(xiàn)的的一個(gè)詞,最早出自 Pivotal 公司(即開發(fā)了 Spring 的公司)的一本技術(shù)小...
摘要:之后,在本地目錄生成代碼并且安裝項(xiàng)目依賴的包,最后將本次初始化生成的所有代碼自動(dòng)提交到遠(yuǎn)程倉(cāng)庫(kù)。按照城市評(píng)選,分別評(píng)選明日之子僅限男性參加和閃亮女神僅限女性參加。 背景: 隨著開發(fā)團(tuán)隊(duì)規(guī)模不斷發(fā)展壯大,在人員增加的同時(shí)也帶來(lái)了協(xié)作成本的增加,業(yè)務(wù)項(xiàng)目越來(lái)越多,類型也各不相同。常見的類型有組件類、活動(dòng)類、基于React+redux的業(yè)務(wù)項(xiàng)目、RN項(xiàng)目、Node.js項(xiàng)目等等。如果想要對(duì)每...
閱讀 1580·2021-10-11 10:59
閱讀 2019·2021-09-09 11:36
閱讀 1534·2019-08-30 15:55
閱讀 1388·2019-08-29 11:20
閱讀 3125·2019-08-26 13:39
閱讀 1537·2019-08-26 13:37
閱讀 2048·2019-08-26 12:11
閱讀 1386·2019-08-23 14:28