不同框架重写同功能项目应分建Git仓库还是同仓不同分支?
同项目技术栈重写的Git仓库方案选择
两种方案没有绝对的优劣,核心匹配你的后续维护、协作需求即可,各自适用场景如下:
优先选择同一仓库不同分支的场景
- 重写版本上线验证稳定后,旧技术栈版本会直接下线,不需要长期并行维护
- 两个版本需要共用项目级的文档、Issue、里程碑、权限配置,不需要拆分管理
- 重写过程中需要频繁对比两个版本的实现差异,或者灰度切换阶段需要两边同步修复同一个bug
- 你希望保留完整的项目演进提交历史,方便后续追溯整个项目的技术迭代脉络
这种场景下可以直接新建对应重写技术栈的专属分支(比如rewrite-vue3、rewrite-go),重写完成验证无误后直接合并到主分支,旧版本代码可以打tag留存归档即可。
优先选择独立仓库的场景
- 需要长期并行维护两个版本,比如旧技术栈版本要持续给存量客户提供更新支持,新技术栈版本面向新客户或者新业务场景迭代
- 两个版本的开发团队完全独立,有不同的权限管控要求,或者后续会分拆为不同的业务线独立运营
- 重写版本的代码结构、依赖体系和旧版本完全没有共通点,放在同一个仓库会导致代码克隆、CI构建的冗余成本大幅提升
避坑提醒
不要采用同一仓库不同目录存放两个版本代码的方案,这种模式会导致两个版本的提交历史混杂,后续排查历史问题、追溯版本变更记录的成本会大幅提升,也不便于后续旧版本的下线归档操作。
内容的提问来源于stack exchange,提问作者Maryll Castelino
相关产品推荐
相关产品推荐

