首页/开发/系统分析与架构设计速查/单仓与多仓(Monorepo / Polyrepo)

单仓与多仓(Monorepo / Polyrepo)

仓库布局影响依赖管理与协作方式:单仓便于跨模块原子提交与统一工具链,多仓便于独立发布与细粒度权限;选择取决于团队规模、构建系统能力与治理成本。

对比

维度单仓(Monorepo)多仓(Polyrepo)
原子提交跨模块一次提交需多次发布协调
构建需受影响分析控制流水线时长各自独立构建
权限仓库级权限较粗,需目录级策略按仓库授权更细
版本管理统一版本,跨模块引用直接需包版本化与依赖协调
发布节奏统一流水线,影响面较大独立发布,节奏灵活
单仓不等于单构建:需要受影响分析与远程缓存才能控制 CI 时长,工具与流程不到位时会拖慢流水线。

易错点

  • 跟风单仓但流水线全量构建,CI 时长失控
  • 多仓下模块边界模糊,接口变更靠口头同步

数据来源与参考

  • Potvin & Levenberg:Why Google Stores Billions of Lines of Code in a Single Repository(Communications of the ACM,2016)
  • Microsoft Code With Engineering Playbook:工程实践文档(含仓库策略)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌