分支在應(yīng)用開發(fā)扎拣,特別是在一個(gè)團(tuán)隊(duì)開發(fā)模式下應(yīng)該是必備,目前團(tuán)隊(duì)中存在不善于使用分支的情況素跺,舉一個(gè)簡單的場景:
我們的項(xiàng)目在周一和周三分別有兩個(gè)版本點(diǎn)二蓝,版本內(nèi)容包含不同的特性,比如周一版本使用老的表名規(guī)范指厌,周三版本采用新的表名規(guī)范刊愚。在版本開發(fā)過程中可能會(huì)有各種 bug fix 提交到主分支上 。
目前我們采用的是開發(fā)計(jì)劃和版本點(diǎn)同步的策略踩验,也就是周一發(fā)版之后才對(duì)進(jìn)行周三版本的開發(fā)工作鸥诽。
這樣做當(dāng)然就不需要建立分支,也看似非常方便箕憾,但代價(jià)就是周一和周三之間開發(fā)時(shí)間太少牡借,不適合版本迭代。
我的建議是要建立分支袭异,而且要盡可能多地建立分支钠龙。
要做要這一點(diǎn),必須要回答三個(gè)問題:
- 什么情況下需要建立分支 御铃?
- 如何保證和主分支同步 碴里?
- 如何單獨(dú)發(fā)布模塊特性分支代碼?
以 lobby-console 子模塊為例:
對(duì)于這個(gè)模塊周三版本需要增加兩個(gè) feature
- 按照最新的數(shù)據(jù)字典規(guī)范化表名
- 改造日志框架加入 zdogs
對(duì)于這兩個(gè)需求上真,項(xiàng)目經(jīng)理可以根據(jù)版本發(fā)布時(shí)間分派一個(gè)特性分支:
- feature-PATCH-20190830
開發(fā)步驟一般如下:
1. 創(chuàng)建并切換到特性分支
git checkout -b feature-PATCH-20190830
2. 進(jìn)行特性分支的開發(fā)
3. 開發(fā)完成咬腋,準(zhǔn)備測試前同步主分支代碼到特性分支:
git commit -am "feature-PATCH-20190830:complete"
git merge origin/master
git push origin feature-PATCH-20190830
4. 打包發(fā)布測試
其中需要注意績點(diǎn):
- 在 feature 分支上建議每次提交之前都保持和主分支同步( git rebase master),從而避免合并代碼沖突的問題
- 目前一鍵發(fā)布腳本不支持指定分支發(fā)布(建議之后加上)