git的子模块讲解
一、Git 子模块到底解决什么问题?
我们先从一个生活例子理解:
假设你在写 3 篇不同的报告(A 报告、B 报告、C 报告),这 3 篇报告都需要用到公司统一的 “数据图表模板”。如果每次写报告都把模板复制粘贴一遍,会有两个麻烦:
- 模板更新时,3 篇报告里的模板要手动同步,容易漏改;
- 某篇报告想单独修改模板(比如加个数据标签),会影响其他报告。
Git 子模块就是为解决这个问题而生的:
它让 “数据图表模板” 成为一个独立的仓库(子模块),3 篇报告(主项目)只需 “链接” 到这个模板的特定版本。模板更新时,主项目可选择是否同步;主项目也能单独修改模板且不影响其他项目。
简单说:子模块实现了 “代码复用” 和 “独立版本管理” 的兼顾—— 既不用重复复制代码,又允许子模块和主项目各自迭代。
二、哪些场景一定要用子模块?
记住 3 个最常见的场景,新手就能判断什么时候该用:
多个项目共用一套基础代码
比如公司的 “用户登录组件” 被 10 个业务系统使用,把组件做成子模块,改一次组件,各系统可按需更新,避免 10 个系统重复改代码。大型项目拆分给多团队开发
一个电商平台拆成 “商品模块”“订单模块”“支付模块”,每个模块由不同团队开发(独立仓库),主项目通过子模块把它们组合起来,团队间代码互不干扰。需要定制化修改第三方开源库
项目用到一个开源日历插件,但需要加公司特有的节假日显示。把插件作为子模块,既能同步官方更新,又能保留自己的定制代码。