CasualYours
2021-12-01 09:14:53 +08:00
你的这两种方案都有一些问题。
两个方案都没有版本的概念,这样会导致你本次功能上线出现问题后,无法正确回滚至上一版本。方案二不应该在测试后再进行代码合并,测试的永远应该是最后要上线的代码。
我公司通常这么处理的:
- 从 master 拉取 release-xxx 作为本次的发布分支
- 再从发布分支中 release-xxx 拉取开发分支 feature1212
- 至于你两种方案中纠结的到底是两个人共用一个开发分支,还是各建一个,我的建议:你们就两个人,没有必要增加分支复杂度,直接公用一个开发分支即可,至于开发中遇到冲突,可以通过频繁的 pull/push 来解决
- 你两种方案中的 dev 分支我认为也没有起到效果,首先测试代码应该和要发布的代码完全一致才有意义,你这里的 dev 分支没有注明检出来源,feature1212 merge 到 dev ,无法保证 feature1212 和 dev 代码一致。正确做法是你应该 feature1212 合并回 release-xxx ,用合并后的发布分支直接测试
- 测试完成后发布分支 release-xxx 部署线上发布
- 发布后出现问题,如果要回滚上一版本,那么直接拿上一版本的发布分支(你这里是 master )部署线上;如果要紧急修复,那么从 release-xxx 中检出一个 release-xxx-fix 去重复上面的过程