按照 gitflow 的流程,开发时有 Develop Release Master 三个主要分支,
普通的 gitflow 开发流程就是:
- 有新功能需要开发的话,就在 Develop 上新建 feature/xxx 分支进行开发
- 新功能开发完成后 feature 合并入 Develop 分支
- 然后 Develop 合并入 Release 分支
- 最后确认无误后 Release 合并入 Master 分支正式发布到生产环境
但是最近在使用这套流程的时候遇到了个非常大的问题,而所有讲解 gitflow 的文章都似乎特意避开了这个问题不谈,明明是实际开发的话一定会遇到的问题,所以来问问大家怎么解决
问题:
同时有两个新功能需要开发,我们就叫 feature/01 feautre/02 吧
两个功能开发完毕,先后合并入了 Develop 进行线上 dev 环境的测试。
那么然后问题就来了,如果只想发布功能 feature/02 到生产换件的话,我该怎么做?
现在 Develop 分支上已经合并入了 feature/01 和 feature/02,如果按照 gitflow 的做法,把 Develop 分支合并入 Release 分支的话, 那么 feautre/01 的变更也会同时被合并
当然,一个解决办法就是不按照 gitflow 的做法,不把 Develop 分支合并入 Release 分支,而是直接把 feature/02 分支合并到 Release 分支上。但是这么做的话,只有两个 feature 分支还好,如果同时开发的 feature 分支非常多的话,每次发布功能都是直接 feature 分支合并入 Release 分支,那么 Development 分支的还有什么意义,以及这么做同时还能预见到,Develop 分支和 Release 区别会越来越大。
这个问题相信大家开发时一定都有遇到过,不知道大家是怎么解决这个问题的?


