如何優雅的編寫git的提交信息

前言

在公司的日常工作當中或者個人的開源項目,將代碼提交到代碼庫時。都會遇到下面這樣的對話框,通常都會隨便寫點內容在里面。

a5cf25def732b8efeae6d717d286139b.png

當遇到問題需要回溯的時候就成了給自己造成的麻煩,因為無法通過commit message來非常直觀的看到這一次提交了什么,做了哪些修改。這個時候只能一個一個文件打開來看。這個時候如果有規范的提交將會減少不必要的麻煩。

23731303600e6fac2fc16d1d5226a696.png

概述

約定式提交規范是一種基于提交信息的輕量級約定。它提供了一組簡單規則來創建清晰的提交歷史;這更有利于編寫自動化工具。通過在提交信息中描述功能、修復和破壞性變更, 使這種慣例與 SemVer 相互對應。

提交說明的結構如下所示:


原文:

<type>[optional scope]: <description>[optional body][optional footer(s)]

譯文:

<類型>[可選 范圍]: <描述>[可選 正文][可選 腳注]

提交說明包含了下面的結構化元素,以向類庫使用者表明其意圖:

  1. fix: 類型fix 的提交表示在代碼庫中修復了一個 bug(這和語義化版本中的 PATCH 相對應)。

  2. feat: 類型feat 的提交表示在代碼庫中新增了一個功能(這和語義化版本中的 MINOR 相對應)。

  3. BREAKING CHANGE: 在腳注中包含 BREAKING CHANGE: 或 <類型>(范圍) 后面有一個 ! 的提交,表示引入了破壞性 API 變更(這和語義化版本中的 MAJOR 相對應)。破壞性變更可以是任意 類型 提交的一部分。

  4. fix:feat: 之外,也可以使用其它提交 類型 ,例如 @commitlint/config-conventional(基于 Angular 約定)中推薦的 build:chore:ci:docs:style:refactor:perf:test:,等等。

  5. 腳注中除了 BREAKING CHANGE: <description> ,其它條目應該采用類似 git trailer format 這樣的慣例。

其它提交類型在約定式提交規范中并沒有強制限制,并且在語義化版本中沒有隱式影響(除非它們包含 BREAKING CHANGE)。可以為提交類型添加一個圍在圓括號內的范圍,以為其提供額外的上下文信息。例如 feat(parser): adds ability to parse arrays.

示例

包含了描述并且腳注中有破壞性變更的提交說明
feat: allow provided config object to extend other configsBREAKING CHANGE: `extends` key in config file is now used for extending other config files
包含了 ! 字符以提醒注意破壞性變更的提交說明
feat!: send an email to the customer when a product is shipped
包含了范圍和破壞性變更 ! 的提交說明
feat(api)!: send an email to the customer when a product is shipped
包含了 ! 和 BREAKING CHANGE 腳注的提交說明
chore!: drop support for Node 6BREAKING CHANGE: use JavaScript features not available in Node 6.
不包含正文的提交說明
docs: correct spelling of CHANGELOG
包含范圍的提交說明
feat(lang): add polish language
包含多行正文和多行腳注的提交說明
fix: prevent racing of requestsIntroduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.Remove timeouts which were used to mitigate the racing issue but are
obsolete now.Reviewed-by: Z
Refs: #123

參考:

  • 1.約定式提交官網:https://www.conventionalcommits.org/zh-hans/

  • 2.完整提交類型列表:

    https://github.com/pvdlg/conventional-changelog-metahub#commit-types

  • al-commits Conventional Changelog:https://github.com/conventional-changelog/standard-version

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286997.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286997.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286997.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android快捷開發之Retrofit網絡加載框架的簡單使用

大家都知道&#xff0c;安卓最大的特點就是開源化&#xff0c;這自然會產生很多十分好用的第三方API&#xff0c;而基本每一個APP都會與網絡操作和緩存處理機制打交道&#xff0c;當然&#xff0c;你可以自己通過HttpUrlConnection再通過返回數據進行解析解決&#xff0c;而我們…

如何線性求乘法逆元

ny[i](ny[p%i]*(p-p/i))%p;不如背一發板子&#xff1f;轉載于:https://www.cnblogs.com/paozi/p/7788640.html

打開計算機無法顯示工具欄,任務欄不顯示打開的窗口怎么辦教程

我們在使用電腦的時候&#xff0c;打開很多程序的時候&#xff0c;會最小化某些窗口&#xff0c;只留在用的窗口&#xff0c;而最小化都是縮小為一個圖標放入屏幕下方的任務欄的&#xff0c;但有時候不知道為什么任務欄不顯示打開的窗口了&#xff0c;這時候也就無法直接用鼠標…

rsync文件同步、Inotify-tools參數詳解

inotifywait用于等待文件或文件集上的一個待定事件&#xff0c;可以監控任何文件和目錄設置&#xff0c;并且可以遞歸地監控整個目錄樹&#xff1b; inotifywatch用于收集被監控的文件系統計數據&#xff0c;包括每個inotify事件發生多少次等信息從上面可知inotifywait是一個…

ArcGIS 10.6提取道路中心線的兩種方法經典教程

我們工作中碰到的道路數據通常為面狀,需要提取道路中心線,本文講解ArcGIS10.6中從面狀道路數據中提取道路中心線的兩種常用經典方法。 方法一:使用ArcGIS 10.6提供的提取道路中心線工具 本實驗中使用到面狀數據如下所示: 首先,將面狀數據轉為線狀數據。 轉完之后,道路盡頭…

衡量計算機浮點數操作性能,計算機系統基礎:計算機性能評價知識筆記

1、計算機性能常用的性能評測方法1.1 時鐘頻率計算機的時鐘頻率可以反映出機器的運行速度。一般主頻越高&#xff0c;速度越快。1.2 指令執行速度加法指令執行速度是衡量計算機性能指標的重要指標之一。1.3 等效指令速度法隨著計算機指令系統發展&#xff0c;種類越來越多&…

Android之用HttpURLConnection斷點下載谷歌云存儲(google cloud storage)文件

1 需求 在Android app里面實現斷點下載谷歌云存儲(google cloud storage)文件,也就是說用戶下載谷歌云存儲(google cloud storage)文件的時候可以暫停下載,后續可以再繼續下載 測試的圖片谷歌云的下載地址:https://storage.googleapis.com/keepdrop/common_dev/file-6fb695ac…

python 寫游戲好簡單啊,我用鍵盤可以隨意控制角色了【python 游戲實戰 04】

前言 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新…

ASP.NET登錄以及注冊

數據模型&#xff1a; 1 public class Model2 {3 public Model()4 {5 //6 // TODO: 在此處添加構造函數邏輯7 //8 }9 private string _Ucode; 10 /// <summary> 11 /// 賬號 12 /// </summary> 13 public…

樹形表的平行查詢設計

本文由網友長空X投稿&#xff0c;歡迎轉載、分享原文作者&#xff1a;長空X&#xff08;CSDN同名“長空X“&#xff0c;CkTools的作者&#xff0c;github: https://github.com/hjkl950217&#xff09;原文鏈接&#xff1a;https://www.cnblogs.com/gtxck/articles/16293295.htm…

Ubuntu 16.04安裝SQLite Browser操作SQLite數據庫

安裝&#xff1a; sudo apt-get install sqlitebrowser 啟動&#xff1a;

ArcGIS10從入門到精通系列實驗視頻教程合集(持續更新)

全集視頻請點擊&#xff1a;《ArcGIS10.X從入門到精通系列實驗教程》

(13)python 字典 2 分鐘速解

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

Kotlin之函數作為參數傳遞

1 、Kotlin之函數作為參數傳遞 我們在寫BaseQuickAdapter適配器的時候,有時候嵌套多個BaseQuickAdapter,如果最里面的view觸發點擊事件,我們可以把函數作為參數通過構造函數一層一層傳遞進去。 2、代碼測試 private var test: (Boolean, Int, Int) -> Unit = {result, a…

計算機繪畫作品 星空,關于近期繪畫作品《星空系列》的自述:

《星空系列》是一個很偶然的念想下產生的&#xff0c;但又絕非偶然。最開初的點是高一剛開始學畫的時候&#xff0c;高中的老師給我們免費提供油畫材料給我們練習&#xff0c;那時候我并沒有“安分”地練習高考繪畫&#xff0c;總想做一些關于自己想法的作品&#xff0c;那時候…

BootStrap導航欄的使用

默認的導航欄 創建一個默認的導航欄的步驟如下&#xff1a; 向 <nav> 標簽添加 class .navbar、.navbar-default。向上面的元素添加 role"navigation"&#xff0c;有助于增加可訪問性。向 <div> 元素添加一個標題 class .navbar-header&#xff0c;內部包…

安裝SQL Server 2005時,出現“SQL Server 服務無法啟動。……”提示的解決方法

安裝SQL Server 2005時&#xff0c;出現“SQL Server 服務無法啟動。……”提示的解決方法上午在自己XP SP3電腦上安裝SQL Server 2005時出現如下提示&#xff1a; 根據這一情況&#xff0c;我把自己的解題步驟寫下來和大家分享&#xff0c;雖然簡單了些&#xff0c;可是安裝的…

.NET MAUI 正式發布,再見了 Xamarin.Forms

David Ortinau 在dotnet 團隊博客上發表了一篇文章《Introducing .NET MAUI – One Codebase, Many Platforms》&#xff0c;在這篇文章里宣布了MAUI的正式發布。https://github.com/dotnet/maui/releases/tag/6.0.312 https://devblogs.microsoft.com/dotnet/introducing-dotn…

南京師范大學湯國安教授《地理信息與人類生活》系列精品課程(5集全)

《地理信息與人類生活》湯國安老師公共課&#xff08;5集全&#xff09; 人類掌握與應用地理信息的歷史&#xff0c;從一個側面反映了人類社會的發展進程。在數字化的時代&#xff0c;地理信息技術更是滲透到人類生活的方方面面。本課程通過五節課程的講解&#xff0c;展示了地…

利用SQL注入獲取服務器最高權限

單位有臺數據庫服務器&#xff08;windows 2000 操作系統&#xff0c;sql server 2000&#xff09;前段時間莫名其妙的被***了跑到機房&#xff0c;通過PE進去一看&#xff0c;發現多了一個賬戶&#xff08;SQLDEBUG)。并且administrator賬戶被禁用了看看數據沒少&#xff0c;也…