GIT分支管理模型

生產/開發模型  master/dev

特性/發佈模型 master/dev/feature

開發/發佈分離模型  master/dev/feature/release

開發/發佈/缺陷分離模型  master/dev/feature/release/hotfix

主分支(Main branches)

項目兩個常駐分支:

master 主幹分支(鎖定),僅用於發佈新版本,平時不能在上面幹活,只做代碼合併、以及打標記(git tag)。 理論上,每當對 master 分支有一個合併提交操作,我們就可以使用 Git 鉤子腳本來自動構建並且發佈軟件到生產服務器。

develop開發分支(非鎖定),平時幹活的地方。每當發版時,需要被合併到 master。對於簡單的項目而言,這樣的分支模型已經夠用了。

輔助性分支(Supporting branches)

除了常駐分支,通常大的特性開發或生產缺陷修復還建議創建相應的臨時分支。因爲:

  1. 在分支上開發可以讓你隨意嘗試,進退自如,比如碰上無法正常工作的特性或補丁,可以先擱在那邊,直到有時間仔細覈查修復爲止。
  2. 團隊中如果有代碼審查流程,獨立的分支還可以留給審查者抽空審查的時間和改進代碼的餘地,並將是否合併、是否發佈的權利留給審查者,爲代碼質量設一道門檻。

每一類分支都有一個特定目的,如何命名每一類分支?建議用相關的主題關鍵字進行命名,並且建議將分支名稱分置於不同命名空間(前綴)下,例如:

分支 來源分支 合併分支 鎖定 說明
feature-* develop develop NO 特性分支,爲了開發某種特定功能而建。
release-* develop develop,master YES 預發佈分支,爲了新版本的發佈做準備,一般命名爲release-<版本號>
hotfix-* master develop,master NO 補丁分支,爲了修復生產缺陷而建,一般命名爲 hotfix-<issue 編號>

與主分支不同,這些輔助性分支總是有一個有限的生命期,因爲他們在被合併到主分支之後,就會被移除掉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章