分支版本
- master分支,功能持续演进的主线分。永远不会被删除
- feature分支,用于开发功能的分支。合并到master分支后,通常会被删除
- release分支,用于功能已经收敛的稳定性发布。超出生命周期后,不再进行维护,可能被删除
- bugfix分支,用于修复bug。被合并后,通常会被删除
分支流程
- 只有一个master分支,feature分支需要从master分支fork,功能开发完成合并到master分支,通常也会删除对应的feature分支
- master分支功能积累到一定数量时,基于某个时刻的master分支拉出一个release分支,比如1.3分支
- master分支新功能继续向前演进的同时,1.3分支禁止新功能合入,支持bug修复。
- 1.3分支bug基本稳定时,正式发布版本1.3.0,同时打tag1.3.0,记录版本代码快照
- 后续的1.3版本,仅支持bug修复,致命bug需要立即发布版本,比如1.3.1,同时打tag1.3.1,记录版本代码快照
- 后续的1.3版本,仅支持bug修复,普通bug积累到相应数量后,发布版本,比如1.3.2,同时打tag1.3.2,记录版本代码快照
- bugfix分支如果可以合并到master分支的,则也需要合并到master分支
- 主线master分支的功能再次积累到一定数量时,从步骤2开始重复