克隆一个存在子项目的仓库,2种方式
1,git clone 主仓库 2,git submodule init 3, git submodule update
第二种方式: git clone 主仓库 --recurse-submodules
如果已经克隆了主项目,忘记加 --recurse-submodules 参数, 可以使用 git submodule update --init
如果要初始化嵌套的子项目, 使用: git submodule update --init --recurse
怎么自动更新子模块: git submodule update --remote
如果子模块的url改动了,使用: git submodule sync 同步url
二,主模块改动,子模块也改动,主模块push 时,为了防止忘记提交子模块,使用:
git push --recurse-submodule=check
三,如何复现,子模块合并冲突
第一:主项目master分支,更改子模块的内容,然后提交,主项目然后也更新字模块的索引,然后提交
第二:主项目切换develop 分支,也更改子模块的内容,然后提交,主项目然后也把子模块的索引提交,
第三:主项目分支合并,然后会出现上面的报错