Git團隊開發管理規范、GitFlow開發規范


Git管理規范

一、Git代碼倉庫創建規范

1.1 代碼倉庫創建規范

  1. 項目創建需符合Group規范。

  2. 創建項目必須添加Project description說明。

  3. 每個項目都需要README.md文件。

  4. 除文檔說明類型倉庫,所有代碼倉庫都需要.gitignore

注:有模板的項目,要以統一的模板創建項目

1.2 Groups使用規范

Group 分為 rule(技術行為規范)、lab(技術預研)、common(基礎庫)、realicloud(基礎平台)、rexxox(產品)、customer(定制化開發項目)
img

1.3 目錄結構及權限介紹

  • rule - Internal
    • 主要用於存放技術行為規范相關資料
  • lab - Internal
    • 主要用於存放技術預研,比如shader預研、售前demo技術預研等。
  • common - Internal
    • 主要用於存放公共組件庫,基礎算法庫
  • rexxxud - Private
    • 主要用於存放底層基礎能力平台相關微服務,如PaaS層的接口、網關鑒權服務等。
  • rexxxb - Private
    • 主要存放產品相關業務代碼,如應用中心小程序等。
  • customer - Private
    • 主要存放客戶制定化開發項目代碼。

權限說明:gitlab主要包括三種權限Private、Internal、Public,分別為只對組內用戶開放、注冊用戶可見和公開,公司gitlab一般不使用Public

1.4 README文件規范

README文件結構如下:

<項目簡介/Introduction>
<快速使用/Quick start>
<文檔說明/Documentation>
  • Introduction 用於闡述項目基本情況和功能(是什么,用來做什么的)
  • Quick Start 主要包括兩部分內容:簡易的安裝部署說明(Deployment)和使用案例(Example)。
  • Documentation 部分是核心的文檔,對於大型項目可以使用超鏈接代替

參考:
img

二、代碼提交規范(*)

2.1 commit三要素

提交規范一般包括:標題(類型、精簡總結)、內容、備注 。其中精簡總結 是必填的,類型 最好也填一下,其余都是選填。

2..2 標題

標題分為 類型改動范圍精簡總結 三部分:

2.2.1 類型

規范的主要類型如下:

  • feat:新功能或功能變更相關
  • fix:修復bug相關
  • docs:改動了文檔,注釋相關
  • style:修改了代碼格式化相關,如刪除空格、改變縮進、單雙引號切換、增刪分號等,並不會影響代碼邏輯
  • refactor:重構代碼,代碼結構的調整相關(理論上不影響現有功能)
  • perf:性能改動,性能、頁面等優化相關
  • test:增加或更改測試用例,單元測試相關
  • build: 影響編譯的更改相關,比如打包路徑更改、npm過程更改等
  • ci:持續集成方面的更改。現在有些build系統喜歡把ci功能使用yml描述。如有這種更改,建議使用ci
  • chore:其它改動相關,比如文件的刪除、構建流程修改、依賴庫工具更新增加等
  • revert:回滾版本相關

其實實際開發中最常用的就是 feat、fix 和 perf,git提交基本上都是實現需求,更改bug,性能優化。除了上述這些主要類型,我們也可以根據團隊要求定制類型,畢竟規范是死的,人是活的嘛。比如為了大家更易讀,我們只留幾個常用的,並且全改成中文,如:

  • 功能更改:新功能或功能變更相關
  • 修復bug:修復bug相關
  • 優化:性能改動,性能、頁面等優化相關

沒有好與不好之分,適合團隊的就是最好的!

2.2.2 改動范圍

當項目划分為好幾個模塊的時候,指定改動的模塊是很有必要的事情,這樣在git提交記錄中,很容易看出提交者更改的是哪個模塊。比如本次修改了compiler(編譯器)模塊,下次修改了 router(路由)模塊,一目了然。如:

  • compiler
  • router

2.2.3 精簡總結

必填的精簡總結是非常重要的,一般是是總結概括的文字。要讓人一眼就能看出來主要提交了什么,是添加了功能還是解決了問題,同時它也是大多數git管理工具默認展示的一行。如果你寫的標准,那么提交記錄看起來就很漂亮很規整。例如:

fix: 修復了無限抽獎的bug

2.3 內容

內容主要填寫詳細的改動內容,可換行。當然,不必像寫一篇小作文似的長篇大論,畢竟我們程序員的時間還是很寶貴的。如果精簡總結寫的比較完美,內容不寫也是沒關系的。不過如果更改確實很多,並且時間充裕的話,把本次提交內容的實現、需求以及背景都填寫,是很負責的做法。比如:

fix: 修復了無限抽獎的bug

在網絡不好時,多次抽獎的接口可以被重復調用。
此次更改了抽獎接口的邏輯判定,在並發請求中……采用了……所以……。

2.4 備注

備注看起來並不是那么重要,主要作用就是有一些額外的hook補充,比如提交記錄之后,自動觸發代碼聯動編譯,或者自動生成git提交的通知。

三、倉庫代碼規范(*)

image-20210721143940869


免責聲明!

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



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