MultiRepoMultiRepo 指使用多个 Git 仓库分别管理项目的每一个 模块/包/功能/应用优势每个服务 和 库 都有自己的 版本/权限 控制代码 checkout 和 pull 是小型且独立的,因此即使项目规模增大,也不存在性能问题团队可以独立工作,不需要访问整个代码库更快的开发 和 灵活性每个服务都可以单独发版,有自己的部署周期,从而使 CI 和 CD 更易于实现更好的权限访问控制,所有的团队不需要完全访问所有的库,需要的时候再获得读访问权限劣势代码复用可能存在较高成本版本管理可能不一致项目工作流被割裂MonorepoMonorepo 是一种项目管理方式,就是把多个项目放在一个仓库里面优势依赖一致性所有项目放在一个仓库当中,复用起来非常方便,若有依赖的代码变动,那么用到这个依赖的项目当中会立马感知到,并且所有的项目都是使用最新的代码,不会产生项目版本更新不及时的问题统一项目工作流所有项目复用一套标准的工具和规范,无需切换开发环境,如果有新的项目接入,也可以直接复用已有的基建流程,比如 CI 流程、构建和发布流程,只需要很少人力资源就可维护所有项目的基建,使得维护成本大大减少团队协作更容易团队成员都在一个仓库开发,能够方便地共享和复用代码,方便检索项目源码git commit 的历史记录支持以功能为单位进行一次提交即可,而 MultiRepo 对于某个功能的提交,可能需要改好几个仓库,提交多个 commit劣势操作上可能花费更长的时间权限不能单独管理可能很难统一工作流本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
MultiRepo
优势
劣势
Monorepo
优势
依赖一致性
统一项目工作流
团队协作更容易
劣势