git 代碼提交規范


原文檔:https://www.jianshu.com/p/ff4f98695c2c

git commit 使用說明
1 概述
git提交推薦使用命令行工具,請嚴格遵循提交格式。

2 提交格式
在您git add后,推薦執行git commit進行提交,如無特殊描述信息要添加,也可以git commit -m 進行提交。

要求提交格式如下:

( ):

<body> <BLANK LINE> <footer> type表示提交類別,scope表示修改范圍,subject表示標題行, body表示主體描述內容。

2.1 type說明
type在commit的是否必須存在。

feat: 添加新特性
fix: 修復bug
docs: 僅僅修改了文檔
style: 僅僅修改了空格、格式縮進、逗號等等,不改變代碼邏輯
refactor: 代碼重構,沒有加新功能或者修復bug
perf: 優化相關,比如提升性能、體驗
test: 增加測試用例
chore: 改變構建流程、或者增加依賴庫、工具等
revert: 回滾到上一個版本
2.2 scope說明
非必填(建議填寫),scope用於說明 commit 影響的范圍,建議填寫影響的功能模塊。

如果你的修改影響了不止一個scope,你可以使用*代替。

2.3 subject說明
必填, commit 目的的簡短描述,不超過50個字符。

以動詞開頭,使用第一人稱現在時,比如change,而不是changed或changes
第一個字母小寫
結尾不加句號
2.4 body說明
非必填(建議填寫),可描述當前修改的行為詳細信息或修改的目的。

2.5 footer說明
非必填,一般用於描述BREAKING CHANGE,在項目開發中一般不需要填寫,組件研發的工程需要填寫。

格式:以BREAKING CHANGE開頭,后面是對變動的描述、以及變動理由和遷移方法。

3 提交方式
如上2所示格式,本質上是改變文件 .git/COMMIT_EDITMSG 中的文本,實際提交過程如下(推薦命令行提交):

3.2 cmd(notepad)
window系統下默認git編輯工具是vim,如無相關基礎,建議使用window默認的文本編輯器(這里不贅述vim相關編輯方法)。

修改git默認文本編輯器: git config core.editor notepad

修改后執行git commit,會彈出文本編輯器。

我們要按照規定的格式在注釋前加入要提交的commit信息:

feat(人員新增): 增加人員批量導入

  • 增加批量報盤功能
  • 增加人員報盤后結果查詢功能
  • 修改人員新增布局

然后保存並關閉,會提示如下信息:

[master 756c07e] feat(人員新增): 增加人員批量導入
1 file changed, 2 insertions(+)

在push完成后,gitlab的commit列表中會有如下信息:

commit.png
3.2 shell(GNU nano)提交方式
在您執行git commit后,命令行會有如下顯示:

projectRoot/.git/COMMIT_EDITMSG

請為您的變更輸入提交說明。以 '#' 開始的行將被忽略,而一個空的提交

說明將會終止提交。

位於分支 master

您的分支與上游分支 'origin/master' 一致。

要提交的變更:

修改: CHANGELOG.md

未跟蹤的文件:

.idea/

                        [ 已讀取 13 行 ]

^G 求助 ^O 寫入 ^W 搜索 ^K 剪切文字 ^J 對齊 ^C 游標位置
^X 離開 ^R 讀檔 ^\ 替換 ^U 還原剪切 ^T 拼寫檢查 ^_ 跳行

如上所示,我們要按照規定的格式在注釋前加入要提交的commit信息:

feat(人員新增): 增加人員批量導入

  • 增加批量報盤功能
  • 增加人員報盤后結果查詢功能
  • 修改人員新增布局

輸入完成后,根據快捷鍵提示,按ctrl + O,然后出現要修改的MSG文件名,按回車鍵。此時提示如下:

[ 已寫入 19 行 ]

最后按ctrl + X提交完成,提示如下:

[master 756c07e] feat(人員新增): 增加人員批量導入
1 file changed, 2 insertions(+)

在push完成后,gitlab的commit列表中會有如下信息:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM