如果是公司自有产品,git 主分支一直往前 push,主分支上打 tag,对应线上版本
如果是做外包,除了主分支一直往前提交外,A 公司需要个性化定制 a 功能,B 公司个性化定制 b 功能,也因此开了 a,b 两个分支,到后面,分支越来越多,各个分支的基本代码版本也越来越乱,维护也不方便,有什么可以解决此坑的办法么?
![]() | 1 TimePPT PRO 呆过的某团队曾经尝试过,主版本正常开发,个性化定制需求模块化 or 插件化 |
![]() | 4 lazyrm 2020-10-14 17:00:36 +08:00 gitflow 能行? |
![]() | 5 baiyi 2020-10-14 17:23:01 +08:00 Github Fork Git 用 remote,比把模块全堆在分支上要清晰一点 |
![]() | 7 wangyzj 2020-10-14 18:36:37 +08:00 master 上分开到 a,b 后 每周从 master 上 merge 回来 然后回归吧 |
![]() | 8 340244120w 2020-10-14 19:10:23 +08:00 via iPhone 这就是最简单也是最好的办法了,你们要做的仅仅是规范分支名称 |
![]() | 9 66450146 2020-10-14 20:20:14 +08:00 每个功能都加 feature flag,每个包一个配置文件设定哪些功能是启用的 |
![]() | 10 asdf2020 2020-10-14 20:53:39 +08:00 gitflow 模式就可以吧,我们就是多个 feature 分支,然后每次发版是 release 合并到 master,然后 release 代码合并到 未发布的 featureXX 分支,这样保持一致,避免未来合并代码出错了 |
![]() | 11 konakona 2020-10-15 00:05:30 +08:00 via iPhone 你这个应用场景我推荐 2 种 flow,分别是 gitlab flow 和 github flow 。不考虑 git flow,太繁琐不合适。 |
12 kingzeus 2020-10-15 09:10:46 +08:00 我现在的方案: 1.分库,所有都是从主仓库 fork 出来 2.功能分支,通用的功能推送到主仓库,单独的功能放在子仓库里 3.主仓库定时发布版本,子仓库定期从主仓库同步 简单说,使用 gitflow 的方式,管理仓库之间的逻辑 |
![]() | 13 HannibaI 2020-10-15 09:37:42 +08:00 需要定制化的功能为啥不是放到代码里来管理而是用分支? |
![]() | 15 dany813 2020-10-15 10:18:32 +08:00 我们目前是把所有的定制化的分支,全部插件化,即插即用,主版本就一个主分支,然后打 tag |
![]() | 16 xuanbg 2020-10-15 14:09:58 +08:00 这个和代码结构有关系,假设定制化代码和通用代码井水不犯河水,那就很简单了。定制化代码的修改只在定制分支进行,通用代码的修改最终合并到 master,然后再把 master 合并到定制化分支就行。 如果不能做到相互不干扰,那最好是各个分支各自修改,分支也永远不要相互合并。这样其实和多个项目没有区别。 |