小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Git提交信息規(guī)范

 印度阿三17 2023-08-29 發(fā)布于重慶

1. 背景

Git 是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),在我們平時(shí)的項(xiàng)目開(kāi)發(fā)中已經(jīng)廣泛使用。而當(dāng)我們使用Git提交代碼時(shí),都需要寫(xiě)Commit Message提交說(shuō)明才能夠正常提交。

git commit -m "提交"

然而,我們平時(shí)在編寫(xiě)提交說(shuō)明時(shí),通常會(huì)直接填寫(xiě)如"fix"或"bug"等不規(guī)范的說(shuō)明,不規(guī)范的提交說(shuō)明很難讓人明白這次代碼提交究竟是為了什么。而在工作中,一份清晰簡(jiǎn)介規(guī)范的 Commit Message 能讓后續(xù)代碼審查、信息查找、版本回退都更加高效可靠。因此我們需要一些工具來(lái)約束開(kāi)發(fā)者編寫(xiě)符合規(guī)范的提交說(shuō)明。

2. 提交規(guī)范

那么,什么樣的提交說(shuō)明才能符合規(guī)范的說(shuō)明呢?不同的團(tuán)隊(duì)可以制定不同的規(guī)范,當(dāng)然,我們也可以直接使用目前流行的規(guī)范,比如[Angular Git Commit

Guidelines。接下來(lái)將會(huì)對(duì)目前流行的Angular提交規(guī)范進(jìn)行介紹。

2.1 提交格式

符合規(guī)范的Commit Message的提交格式如下,包含了頁(yè)眉(header)、正文(body)和頁(yè)腳(footer)三部分。其中,header是必須的,body和footer可以

忽略。

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

2.2 頁(yè)眉設(shè)置

頁(yè)眉(header)通常只有一行,包括了提交類型(type)、作用域(scope)和主題(subject)。其中,type和subject是必須的,scope是可選的。

2.2.1 提交類型

提交類型(type)用于說(shuō)明此次提交的類型,需要指定為下面其中一個(gè):

img

2.2.2 作用域

作用域(scope)表示此次提交影響的范圍。比如可以取值api,表明只影響了接口。

2.2.3 主題

主題(subject)描述是簡(jiǎn)短的一句話,簡(jiǎn)單說(shuō)明此次提交的內(nèi)容。

2.3 正文和頁(yè)腳

正文(body)和頁(yè)眉(footer)這兩部分不是必須的。

如果是破壞性的變更,那就必須在提交的正文或腳注加以展示。一個(gè)破壞性變更必須包含大寫(xiě)的文本 BREAKING CHANGE,緊跟冒號(hào)和空格。腳注必須只包含 BREAKINGCHANGE、外部鏈接、issue引用和其它元數(shù)據(jù)信息BREAKING CHANGE、外部鏈接、issue 引用和其它元數(shù)據(jù)信息BREAKINGCHANGE、外部鏈接、issue引用和其它元數(shù)據(jù)信息。例如修改了提交的流程,依賴了一些包,可以在正文寫(xiě)上:BREANKING CHANGE:需要重新npm install,使用npm run cm代替git commit。

下面給出了一個(gè)Commit Message例子,該例子中包含了header和body。

chore: 引入commitizenBREANKING CHANGE:需要重新npm install,使用npm run cm代替git commit

當(dāng)然,在平時(shí)的提交中,我們也可以只包含header,比如我們修改了登錄頁(yè)面的某個(gè)功能,那么可以這樣寫(xiě) Commit Message。

feat(登錄):添加登錄接口

3.使用Git命令行提交信息

為了規(guī)范commit信息,可以配置一個(gè)全局的 commit message template ,所有提交的 commit message

都按照這個(gè)配置來(lái)寫(xiě)

首先新建模板文件:

在任意目錄下新建.getmessage.txt ,填入以下模板

# <類型>:(影響范圍) <主題> # <body># <footer># 類型字段包含:
#     feat:新功能(feature)
#     fix:修復(fù)bug
#     doc:文檔(documentation)
#     style: 格式化 ESLint調(diào)整等(不影響代碼運(yùn)行的變動(dòng))
#     refactor:重構(gòu)(即不是新增功能,也不是修改bug的代碼變動(dòng))
#     test:增加測(cè)試
#     build: 影響構(gòu)建系統(tǒng)或外部依賴項(xiàng)的更改(maven,gradle,npm 等等)
#     ci: 對(duì)CI配置文件和腳本的更改
#     chore:對(duì)非 src 和 test 目錄的修改
#     revert: Revert a commit
# 影響范圍:
#     用于說(shuō)明 commit 影響的范圍,比如修改的登錄頁(yè)、賬戶中心頁(yè)等
# 主題:
#    commit目的的簡(jiǎn)短描述,不超過(guò)50個(gè)字符
# Body 部分是對(duì)本次 commit 的詳細(xì)描述,可以分成多行
# Footer用來(lái)關(guān)閉 Issue或以BREAKING CHANGE開(kāi)頭,后面是對(duì)變動(dòng)的描述、
#       以及變動(dòng)理由和遷移方法

3. Commitizen

雖然有了規(guī)范,但是還是無(wú)法保證每個(gè)人都能夠遵守相應(yīng)的規(guī)范,因此就需要使用一些工具來(lái)保證大家都能夠提交符合規(guī)范的Commit Message。常用的工具包括了可視化工具和信息交互工具,其中Commitizen是常用的Commitizen工具,接下來(lái)將會(huì)先介紹Commitizen的使用方法。

3.1 什么是Commitizen

Commitizen是一個(gè)撰寫(xiě)符合上面Commit Message標(biāo)準(zhǔn)的一款工具,可以幫助開(kāi)發(fā)者提交符合規(guī)范的Commit Message。

3.2 安裝Commitizen

可以使用npm安裝Commitizen。其中,cz-conventional-changelog是本地適配器。

npm install commitizen cz-conventional-changelog --save-dev

3.3 配置Commitizen

安裝好Commitizen之后,就需要配置Commitizen,我們需要在package.json中加入以下代碼。其中,需要增加一個(gè)script,使得我們可以通過(guò)執(zhí)行npm run cm

來(lái)代替git commit,而path為cz-conventional-changelog包相對(duì)于項(xiàng)目根目錄的路徑。

”script": {  "cm: "git-cz"},"config": {"commitizen": {"path": "./node_modules/cz-conventional-changelog"}}

配置完成之后,我們就可以通過(guò)執(zhí)行npm run cm來(lái)代替git commit,接著只需要安裝提示,完成header、body和footer的編寫(xiě),就能夠編寫(xiě)出符合規(guī)范的

Commit Message。

img

4. vscode可視化提交工具

除了使用Commitizen信息交互工具來(lái)幫助我們規(guī)范Commit Message之外,我們也可以使用編譯器自帶的可視化提交工具。接下來(lái),將會(huì)介紹VSCode可視化提交工具的使用方法。

在VSCode的EXTENSIONS中找到 git-commit-plugin插件,點(diǎn)擊install進(jìn)行安裝。

img

安裝完成之后,可以通過(guò)git add添加要提交的文件,接著,在Source Control點(diǎn)擊show git commit template圖標(biāo),開(kāi)始編寫(xiě)Commit Message信息。

img

接下來(lái)只需要按照指引進(jìn)行Commit Message的編寫(xiě)。

img

當(dāng)編寫(xiě)完成之后,可以得到符合規(guī)范的Commit Message,這個(gè)時(shí)候就可以放心將Commit Message及所修改的文件進(jìn)行提交啦。

img

5. idea可視化工具

idea 安裝此插件:Git Commit Template
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
參數(shù)解析如下:

  • feat: 新功能

  • fix: 修復(fù)bug

  • docs: 只有文檔改變

  • style: 并沒(méi)有影響代碼的意義(空格,去掉分號(hào),格式的修改等)

  • refactor: 代碼的修改并沒(méi)有修改bug,也沒(méi)有添加新功能

  • perf: 代碼的修改提高的性能

  • test: 添加測(cè)試

  • build: 影響構(gòu)建系統(tǒng)或外部依賴項(xiàng)的更改(maven,gradle,npm 等等)

  • ci: 對(duì)CI配置文件和腳本的更改

  • chore:對(duì)非 src 和 test 目錄的修改

  • revert: Revert a commit

影響范圍: 用于說(shuō)明commit影響的范圍,比如 修改的登錄頁(yè),賬戶中心等

Body 部分是對(duì)本次 commit 的詳細(xì)描述,可以分成多行

Footer用來(lái)關(guān)閉 Issue或以BREAKING CHANGE開(kāi)頭,后面是對(duì)變動(dòng)的描述、 以及變動(dòng)理由和遷移方法

https://www./show/4/705714.html

https://blog.csdn.net/fd2025/article/details/124543690

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多