您好,登錄后才能下訂單哦!
本篇文章和大家了解一下寫好commit message提高業(yè)務(wù)效率的方法。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)大家有所幫助。
commit message 在工程開發(fā)中有很重要的作用。一個(gè)好的 message 不僅僅能夠降低 reviewer 的心智負(fù)擔(dān),也能夠方便日后追蹤問題。但寫好一個(gè) commit message 可不容易,今天這篇文章我們來思考一下怎樣讓 commit message 更加清晰,幫助業(yè)務(wù)團(tuán)隊(duì)提高效率。
commit 本質(zhì)就是一些代碼變更的聚合體,我們可能在一個(gè) commit 中改動(dòng)多個(gè)文件。問題的關(guān)鍵在于 commit 的語義和粒度。
這個(gè)很多時(shí)候很頭疼,大 commit 不好 review,每次一看到十幾個(gè)文件上千行記錄在一個(gè) commit 里就很想哭。小 commit 本身是沒問題的,但很多時(shí)候大家稍微改一點(diǎn)就提一個(gè) commit,導(dǎo)致放眼望去全是意義不大的提交,記錄基本沒法看。
怎么把握這個(gè)度呢?
這里提供一個(gè)標(biāo)準(zhǔn)供大家參考:你的 commit 能得體地告訴別人干了一件什么事。
能拆的要拆,兩個(gè)語義獨(dú)立的改動(dòng)不要放到一個(gè) commit 里面,做好一件事即可,commit 的內(nèi)容應(yīng)該是高內(nèi)聚的,不要出現(xiàn)夾帶私活的情況。
只要保證你的 Merge Request 是干凈的,信息清晰的就 ok,不要擔(dān)心一個(gè) MR 對(duì)應(yīng)多個(gè) commit 的問題,該合并就合并,但語義獨(dú)立的兩件事,不要合在一起寫。
不要隨隨便便改一個(gè)地方就提交一次,比如這里加了個(gè)空行,那里刪了個(gè)注釋,全拆開,倒的確是不同的事,但這樣讓別人看就很不得體。想象一下,你現(xiàn)在是個(gè)教練,本來可以等學(xué)員練習(xí)好了,看一遍效果給出評(píng)價(jià)即可,可你的學(xué)生每做一個(gè)動(dòng)作就要把你拉過來看看,這時(shí)你是什么心態(tài)?肯定要崩潰!
軟件開發(fā)也是如此,明明你是要開發(fā)一個(gè)需求,結(jié)果只有一個(gè) commit 是真正支撐需求的,各種格式優(yōu)化的 commit 多達(dá)十幾個(gè),這就非常不得體。
思考每一個(gè) commit 是否必須。一定要記住,不要多寫一行多余的代碼,否則未來你會(huì)很糾結(jié);
學(xué)會(huì)歸納。合并同類項(xiàng)。
<type>(<scope>): <subject> <空行> <body> <空行> <footer>
type 就是 commit 的類型:
docs: 文檔變更
feat: 新需求特性
fix: 修復(fù) bug
perf: 性能提升
style: 代碼風(fēng)格相關(guān)
test: 測試代碼修改
refactor: 重構(gòu)代碼
chore: 構(gòu)建過程或輔助工具的變動(dòng),日常的修改
scope用于說明 commit 影響的范圍,比如數(shù)據(jù)層、控制層、視圖層等等,視項(xiàng)目不同而不同。這個(gè)大家根據(jù)業(yè)務(wù)情況自行約定規(guī)范即可。
commit message 的核心部分,說明干了一件什么事,標(biāo)題性質(zhì),簡單的修改要做到讓大家一看標(biāo)題就能理解改了什么。
對(duì)本次 commit 的詳細(xì)描述,可以分成多行,說明代碼變動(dòng)的動(dòng)機(jī),以及與以前行為的對(duì)比,詳細(xì)的背景要在這里說清楚。比如
More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. Further paragraphs come after blank lines. - Bullet points are okay, too - Use a hanging indent
只有在 break change 或者關(guān)閉 issue 時(shí)使用,場景較少,日常業(yè)務(wù)開發(fā)可以忽略。事實(shí)上,能把 subject,body 寫好就不容易了。
很多時(shí)候大家都直接用 git commit -m "xxx"
來代替,其實(shí)建議大家?guī)?body,很多 commit 光看 subject 跟沒看是一樣的。
這種情況下,大家直接用 git commit
來提交,跳出文本編輯器,支持大家輸入 body。
一定記住,body 不是可有可無,一個(gè)優(yōu)秀的 commit message 要能做到看了就知道前因后果,知道改動(dòng)原因。而不是留一句片湯話在 subject 上。
這一點(diǎn)很多團(tuán)隊(duì)會(huì)忽視,筆者待過的幾乎每個(gè)團(tuán)隊(duì),都是中英文混雜,這一點(diǎn)很不好。建議統(tǒng)一語言,如果公司規(guī)定開發(fā)必須用【英語】,ok 沒問題,大家做好準(zhǔn)備,提高英語素養(yǎng),找到每個(gè)業(yè)務(wù)概念最精準(zhǔn)的表達(dá),形成規(guī)范,落地就行。
但是,但是!??!
絕大多數(shù)團(tuán)隊(duì)是做不到這一點(diǎn)的,因?yàn)闆]有動(dòng)力,而且大家都是中國人,很多語言表達(dá)即便過了四六級(jí),也很難很精準(zhǔn),于是寫的五花八門。
與其這樣,不如明確,除了 type,其他全用中文代替。
以上就是寫好commit message提高業(yè)務(wù)效率的方法的簡略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。