操作如下:
git clone xxxx.git (克隆项目)
git submodule init (子模块初始化)
git submodule update (更新子模块)
当然, 最好一条命令就能搞定...问题
以上对于子模块的使用, 网上有各种教程, 在此不再赘述.
而我在使用中遇到的问题是这样的: 公司的代码库分为测试环境与生产环境两个分支: dev, master....由于git对于子模块的管理并不是基于分支, 而是基于commit id的. 这对于引用第三方库是可以理解的, 毕竟需要一个稳定的版本嘛. 但是对于公司这种需要频繁更新的项目, 就有些混乱了....先说一下我是如何制造冲突的:
父项目与子模块分别拉取分支: master_tmp
父项目与子模块切回master分支
子模块修改文件并提交, 父项目更新commit id
此时父子都回到master_tmp...如此该如何解决呢? 很明显, 这个冲突是子项目的冲突, 所以要进入子项目解决. 主要的思想当然还是解决分支之间的冲突.