在公司的项目中, 经常会遇到一些公共的内容, 多个项目中间通用的, 不可能每次都将整个代码复制一遍, 遇到这种情况有很多不同的解决方案, 一般来说, 项目是通过 git 来管理的, 巧了, git 也同样支持子模块...创建子模块
git submodule add git@gitee.com:hujingnb/submodule_son.git submodule_son
指定子项目地址, 后面的参数可以更改子模块的路径...问题
以上对于子模块的使用, 网上有各种教程, 在此不再赘述.
而我在使用中遇到的问题是这样的: 公司的代码库分为测试环境与生产环境两个分支: dev, master....由于git对于子模块的管理并不是基于分支, 而是基于commit id的. 这对于引用第三方库是可以理解的, 毕竟需要一个稳定的版本嘛. 但是对于公司这种需要频繁更新的项目, 就有些混乱了....先说一下我是如何制造冲突的:
父项目与子模块分别拉取分支: master_tmp
父项目与子模块切回master分支
子模块修改文件并提交, 父项目更新commit id
此时父子都回到master_tmp