第6章:子模块与子树——大仓拆小仓的陷阱

本章你将彻底掌握git submodule 的完整生命周期——添加、更新、克隆、删除。子模块 detached HEAD 状态的成因与解决方案。git subtreegit submodule 的对比与选型决策树。
配套资源:一个包含三个子模块的复杂依赖仓库 Docker 镜像、子模块批量更新脚本、subtree 合并推送脚本。
真实踩坑:我曾修改子模块代码后忘记提交,主仓库记录了不存在的 commit hash,导致 CI/CD 全线飘红;还曾因为子模块嵌套过深,git clone --recursive 花了 40 分钟,最后用 git subtree 彻底重构。


6.1 一个让全组加班到凌晨的子模块事故

2017 年我在某 AI 创业公司,项目依赖三个内部子模块:common/utilscommon/configcommon/ml-core。每个子模块都在独立的 Git 仓库中,通过 git submodule 嵌入主项目。

某天我修改了 common/utils 里的一个日志函数,在子模块目录下直接改了代码,git commit -m "add log rotation",然后回到主项目执行 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值