企業級GIT分支管控方案

語言: CN / TW / HK

攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第3天,點擊查看活動詳情

0. 引言

GIT如今被廣泛應用於企業開發項目託管,隨着我們項目規模的擴大, 開發人員的數量也逐漸擴增,呈現出不同的開發等級,而不同的等級,也需要不同的權限管控。

所以今天,我們來聊一聊,企業git的管控

1. 權限等級

首先我們需要明確項目開發中需要涉及的權限等級:

權限等級 描述 賦權角色
項目創建者 項目創建者擁有項目的最高權限,包括刪除項目、管理成員、設置權限,一般由開發組leader來創建項目 開發組leader
項目管理員 項目管理管理員除了刪除項目和清空項目外,擁有其他的全部權限 團隊leader、運維管理人員
項目主開發者 項目主開發者可以添加tag,管控分支、添加項目成員,核心開發人員可以賦予該權限,一般擁有master分支的管控權限 核心開發人員
項目開發者 項目開發者擁有項目代碼拉取、開發、提交等權限,一般將權限賦予研發人員,但需要注意的是要針對分支做好把控,這點我們後面詳細講解 研發人員
項目觀察者 項目觀察者可以克隆代碼,但是不能提交 品質保證(OA)、產品經理(PM)
項目報告者 項目報告者只能創建issue、評論,不能讀寫代碼,但在企業內部開發中很少用到該權限,因為一般有問題都會提在禪道等管理平台上 訪客、測試

2. 分支管理

企業內部開發中,我們一般分成以下幾種分支:

  • master分支

1、主分支,創建項目時即創建的分支,用於部署生產環境的分支,是所有分支的主幹,與當前線上代碼保持統一 2、由主開發人員、研發組leader管控、不允許其他開發在該分支上直接開發

  • tag標籤

每次從master發佈生產環境後,需要用tag標記一個版本,再master分支上的每個tag都對應歷史的一個線上版本。方便後續追溯及複查代碼

  • develop分支

1、開發分支,開發者各類開發功能的合併分支,即當前最新功能的分支。 2、開發人員會將自己開發的功能分支提交到dev分支上,由主開發人員來進行審核,通過後合併到dev分支上,一般測試環境就是從develop分支拉取代碼 3、不允許開發者在該分支上直接開發

  • feature分支

1、功能開發分支,需要開發新功能時,每個開發者以develop分支為基礎,從dev分支拉取代碼,並創建新的feature分支,比如開發者ben,那麼就拉取並創建新的分支feature-ben 2、功能開發完成後,就提交到develop分支上,由主開發者審核合併,功能開發完成後需要刪除feature分支,下次開發時再衝突拉取創建 3、但需要注意的是,有的功能開發週期可能比較長,或者與其他功能的衝突率比較高,那麼就需要定期拉取代碼,避免長時間不更新代碼,再次提交時出現較多的代碼衝突。即使出現衝突,也能少處理一些。

  • release分支

1、發佈分支,feature分支合併到dev分支後,準備發佈新版本時,再創建一個新的release分支,分支名可以以功能名命名,比如release-user,允許存在多個release分支。 2、預生產環境從release分支拉取代碼發佈,如果出現bug就從release分支拉取bugfix分支進行修復,測試成功後,release分支合併到dev分支和master分支,並且刪除release分支 3、release分支很多沒有預生產環境的公司會選擇忽略該分支,直接提交到master分支進行發佈,這裏也由大家根據公司情況進行選擇 4、不允許開發者在該分支上開發

  • bugfix分支

1、bug修復分支,也叫hotfix分支,正式發佈之後會出現bug,這時需要開發者從master或者release分支拉取並創建一個bugfix分支,分支名可根據開發者名稱來命名,比如bugfix-ben。 2、修復完成之後,合併到master或release分支上,並且刪除bugfix分支

總結

根據以上描述,企業開發時,實際上長期存在的分支只有master和dev分支,其他分支都是多個且臨時的

3. 常見操作

以下操作基於gitee演示,其他git服務端類似,大家可自行摸索

3.1 如何創建分支

1、點擊 分支 ,進入分支管理頁面

2、點擊 新建分支

3、選擇基於哪個分支創建,輸入分支名稱,點擊 提交

4、創建成功

3.2 如何設置分支權限

1、點擊 保護分支設置 ,點擊 新建規則

2、輸入需要設置的分支名,支持通配符形式,比如 release*

設置可推送代碼成員、可合併提交成員,這裏可設置角色或具體的開發人員

確認後點擊 保存

3.3 如何刪除分支

1、點擊 分支

2、選擇需要刪除的分支,點擊 刪除

3.4 如何給master分支打上tag標籤

1、點擊 標籤

2、點擊 新增標籤

3、輸入標籤名稱,一般以版本號命名;輸入標籤描述,一般是本次發佈的功能名;選擇從哪個分支發佈,默認master

3.5 如何在IDEA中更新分支信息

1、點擊 更新項目

2、點擊右下角的分支名,然後就可以看到我們剛剛創建的分支了

3、如果需要切換到新的分支,並拉取代碼的話,點擊分支名,點擊 checkout 即可

4、看到右下角的分支名已經更換了,即表示切換成功

5、再次提交代碼就會看到走的就是新分支了

總結

那麼本期我們的git分支管控就到此結束了,企業生產中要把控好安全生產,就要嚴格控制好分支權限,開發時定期更新,減少衝突