git submodule使用

148 阅读1分钟

克隆一个存在子项目的仓库,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

三,如何复现,子模块合并冲突

image.png 第一:主项目master分支,更改子模块的内容,然后提交,主项目然后也更新字模块的索引,然后提交

第二:主项目切换develop 分支,也更改子模块的内容,然后提交,主项目然后也把子模块的索引提交,

第三:主项目分支合并,然后会出现上面的报错