1. 程式人生 > 其它 >Git團隊開發管理規範、GitFlow開發規範

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(定製化開發專案)

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 部分是核心的文件,對於大型專案可以使用超連結代替

參考:

二、程式碼提交規範(*)

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提交的通知。

三、倉庫程式碼規範(*)