产品研发中的分支策略及发布管理
废话不多说,直接上图:
一些说明:
1. master为稳定版本分支,只有一个,禁止直接提交commit至master分支,代码只能以pull request的形式经code review后才能合入此分支;
2. develop为开发分支,从master拉出的,只有一个,禁止直接提交commit至develop分支,代码只能以pull request的形式经code review后才能合入此分支;
3. feature用于单独功能开发,新功能开发初始时从develop分支拉出,当功能开发完成后merge回develop,同一时间可以有N个feature分支,可以直接在此分支上提交commit,可以删除;
4. release用于版本发布,当需要发布版本时,从develop分支拉出,版本发布完成后merge至develop或master,可以删除;
5. hotfix用于修复正式版本中的紧急bug,修改完成后merge至develop或master,然后再拉release发布版本,可以删除;
6. tag为需要时打的一个标签,方便后续查找对比
这个模型使用得当,可以很大程度杜绝低级错误,有效保障版本的稳定性。