Git分支模型和開發規范

1.分支管理

1.1 總覽

image

從上圖可以看到主要包含下面幾個分支:

  • master: 主分支,主要用來版本發布。
  • develop:日常開發分支,該分支正常保存了開發的最新代碼。
  • feature:從develop分支fork,合并回develop。具體的功能開發分支。
  • release:從develop分支fork,合并回develop和master。一般用于發布正式版本之前(即合并到 master 分支之前),需要有的預發布的版本進行測試。
  • hotfix:從master分支fork,合并回develop和master。線上 bug 修復分支。

1.2 主分支(master, develop)

主分支包括 master 分支和 develop 分支。master 分支用來發布,HEAD 就是當前線上的運行代碼。develop 分支就是我們的日常開發。使用這兩個分支就具有了最簡單的開發模式:develop 分支用來開發功能,開發完成并且測試沒有問題則將 develop 分支的代碼合并到 master 分支并發布。

1.3 輔助分支(feature , release, hotfix)

??? feature 分支用來開發具體的功能,一般 fork 自 develop 分支,最終可能會合并到 develop 分支。一般feature分支都存在于開發者本地,開發期間使用git rebase來保證和develop分支的代碼同步并解決沖突。功能開發完畢后push到遠程倉庫,然后提交pull request,合并到develop分支。

??? release 分支在我看來是 pre-master。release 分支從 develop 分支 fork 出來,最終會合并到 develop 分支和 master 分支。合并到 master 分支上就是可以發布的代碼了。有人可能會問那為什么合并回 develop 分支呢?很簡單,有了 release 分支,那么相關的代碼修復就只會在 release 分支上改動了,最后必然要合并到 develop 分支。比如,當開發一個較長期的feature不著急上線但又需要部署測試時,可以從develop分出一個release分支,feature提交pull request到這個release分支,然后部署這個release分支到測試服。

??? hotfix 分支用來修復線上 bug。當線上代碼出現 bug 時,我們基于 master 分支開一個 hotfix 分支,修復 bug 之后再將 hotfix 分支合并到 master 分支并進行發布,同時 develop 分支作為最新最全的代碼分支,hotfix 分支也需要合并到 develop 分支上去。

1.4 分支命名

除了主要分支的名字是固定的之外,派生分支是需要自己命名的,這里就要有個命名規范了。強烈推薦用如下形式:

  • master 主分支,發布分支
  • dev 主分支,開發分支
  • feat_xxx——按照功能點(而不是需求)命名;
  • release_xxx——用發布時間命名,可以加上適當的前綴;
  • hotfix_xxx——GitLab 的 issue 編號或 bug 性質等。

小寫字母下劃線形式

1.5 版本號命名

格式為:x.y.z,其中,x 用于有重大重構時才會升級,y 用于有新的特性發布時才會升級,z 用于修改了某個 bug 后才會升級。

v1.1.1:第一位大版本號,大功能發布時增加,技術負責人審核;第二位小版本號,增加小特性時增加,主開發審核;第三位BUG修復號,修復BUG用,修復人員負責。

  • 每次發布生產(master),需要為master打一個tag,方便線上回滾
  • 提交時的粒度是一個小功能點或者一個 bug fix,這樣進行恢復等的操作時能夠將「誤傷」減到最低;
  • 用一句簡練的話寫在第一行,然后空一行稍微詳細闡述該提交所增加或修改的地方;
  • 不要每提交一次就推送一次,多積攢幾個提交后一次性推送,這樣可以避免在進行一次提交后發現代碼中還有小錯誤。

1.6 Commit Message 格式

<type>(<scope>): <subject> (不超過50個字)

<空行>

<body> (每行不超過72個字)

<空行>

<footer>
  • type
    feat:新功能(feature)
    fix:修補bug
    mod:修改(即不是新增功能,也不是修改bug的代碼變動)
    refactor:重構
    docs:文檔(documentation)
    style: 格式(不影響代碼運行的變動)
    test:增加測試
    chore:構建過程或輔助工具的變動

  • Scope
    用來說明本次Commit影響的范圍,即簡要說明修改會涉及的部分。這個本來是選填項,但從AngularJS實際項目中可以看出基本上也成了必填項了。

  • Subject
    用來簡要描述本次改動,概述就好了,因為后面還會在Body里給出具體信息。并且最好遵循下面三條:
    1、 以動詞開頭,使用第一人稱現在時,比如change,而不是changed或changes
    2、首字母不要大寫
    2、結尾不用句號(.)

  • Body
    里的內容是對上面subject里內容的展開,在此做更加詳盡的描述,內容里應該包含修改動機和修改前后的對比。

  • Footer
    footer里的主要放置不兼容變更和Issue關閉的信息

  • Revert
    此外如果需要撤銷之前的Commit,那么本次Commit Message中必須以revert:開頭,后面緊跟前面描述的Header部分,格式不變。并且,Body部分的格式也是固定的,必須要記錄撤銷前Commit的SHA值。

示例

feat: 增加港股經紀商隊列

增加港股經紀商隊列接口和后臺名稱編輯接口
增加同時獲取買賣盤和經紀商的接口

BREAKING CHANGE: 刪除了舊版十檔買賣盤接口

原文地址>>>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374