单仓多项目
Monorepo
中级通用单仓多项目(Monorepo)是把多个相关项目放在同一个版本控制仓库中管理的方式。它解决网站、后台和共享组件分散在不同仓库时,跨项目修改难以一起查看、测试和提交的问题。
你可能会说:「我想把网站、管理后台和共用组件放在一起,让 AI 修改共用代码时能同时检查两边。」
动手看看共享按钮的一次跨项目提交
悬停目录行或用 Tab 聚焦,认认三个项目的位置。再切换仓库方式和检查步骤,比较这次共享按钮修改如何被查看、测试和提交。
单仓不是把三个项目合成一个应用,而是让它们共用版本控制边界。共享接口与两个调用方的修改可以放在同一份差异、同一次提交里。
要点单仓多项目是怎么组织和协作的?
- 1
同一个仓库放多个项目
比如你做一个产品,用户网站和管理后台各有自己的代码,共用的界面组件也单独放一处。它们都在同一个 Git 仓库里,但仍然可以有各自的构建命令和发布方式。
- 2
跨项目修改能一起检查
如果你改了共用组件的接口,网站和后台可能都要跟着改。放在一个仓库里,AI Agent 能在同一次修改中查看调用处,团队也能在同一个合并请求里审查这些变化。
- 3
项目边界仍要说清楚
同仓不等于所有代码混在一起。我们通常会标明每个项目的位置、依赖关系,以及各自怎么测试和构建;否则 AI 虽然找得到文件,也容易改到无关项目,或者漏掉受影响的测试。
容易混淆的地方
单仓多项目说的是仓库怎么组织,不等于把几个功能目录放进一个应用:网站和后台即使共用仓库,也可以分别运行、部署。它也不同于多仓库管理,后者让每个项目有独立仓库;跨项目改动就需要分别提交和协调。选单仓不会自动实现代码共享或独立部署。
什么时候用
适合用
- 网站、后台和共享组件经常一起改,你想让一次代码审查覆盖相关变化。
- 几个相关应用由同一团队维护,你想让 AI Agent 在同一个仓库里查找依赖和运行测试。
- 产品有网页端和服务端,两边常同步调整接口,你想更容易追踪一项需求涉及的改动。
不适合用
- 你只有一个独立网站,没有其他项目要协作;普通单项目仓库就够了。
- 几个项目由不同组织维护,访问权限和发布流程都要严格隔离;分别建仓库更合适。
- 你只是想复用一个稳定的通用工具库,使用独立仓库和版本化依赖可能更省事。
练一练选一个答案,看看解释
你维护用户网站、管理后台和两边共用的表单组件。一次需求常要同时修改三处,但网站和后台仍要分别上线。哪种安排最符合单仓多项目?
让 AI 帮你做复制给 AI Agent 直接用
请按单仓多项目组织这个产品:用户网站、管理后台和共享组件放在同一个 Git 仓库,标明各自目录、依赖关系、测试与构建命令。网站和后台保持独立部署;改共享组件时,检查两边受影响的代码和测试。