[請益] Java web app在Git上的分支策略

作者: JohnnyDell (強尼戴爾)   2016-07-25 14:33:01
請問各位都是採用怎麼樣的分支策略呢?
目前是開發Java web app的專案,用的版控是git(一般自架的git)。現階段是採用
A successful Git branching model (http://nvie.com/posts/a-successful-git-branching-model/)
也就是從master開始,分出develop支線,在由develop去開各個feature跟bugfix,
分支寫好後就merge回develop。要release時是從develop開出release分支,進行改
版號之類的準備動作,再將release分支同時merge到master與develop。如此便等於
把develop跟master的差距merge回去master了,在master上打一個tag(e.g., 1.0.2)
1.0.x的發佈都是這樣,但是接下來要往1.1.x了。就不曉得一般做法是怎麼樣分支的呢?
因為1.0.x之後還是可能會有需要fix的bug或者甚至小修改,此bug也可能需要到develop。
假設目前develop和master已經merge release/1.0.13(意即目前發佈的版本號到1.0.13)
1. 在develop的這個commit開一個1.0.x的分支,後續1.0.x的從此分支去做?
2. 在master的這個commit開一個1.0.x的分支,後續1.0.x的從此分支去做?
以上兩種之後的tag就會打在1.0.x的分支上?
因為1.1.x就是繼續從develop往下做並且merge到master
3. 在develop的這個commit開一個1.1.x的分支,後續1.1.x的從此分支去做?
第三種的就不清楚要怎麼樣發佈1.1.x版本,因為如果merge到master不就也檔到1.0.x了?
很怕分支策略一個開錯導致後面版控一整個亂掉
感謝
作者: abc0922001 (中士abc)   2016-07-25 15:08:00
從master上的tag1.0.x去切分支,之後發布1.0.x+1的版本號,tag可以打在分支上。如果這個bug 1.1.x也有,就mege到master上,打上1.1.x+1我記得linux的版本也有這種情況,新特性發布後,還去修復舊版本的bug說tag打在分支上有點怪,tag本來就是不會動的分支了

Links booklink

Contact Us: admin [ a t ] ucptt.com