多个项目共享代码,submodule 各自版本、monorepo 统一版本,取舍看团队边界。
实践流程
# 子模块:把外部仓库挂为固定版本
git submodule add https://github.com/foo/lib libs/foo
git submodule update --init --recursive
# monorepo:多包同仓,靠 workspace 管理
要点速览
- submodule 适合引用稳定第三方,锁定某 commit,互不干扰。
- monorepo 适合强耦合的内部多包,改一处全仓可见。
- submodule 的痛点是 clone 忘加 --recursive,新人常踩。
依赖共享选 submodule 还是 monorepo,本质是「版本边界」划在哪。