git submodule add 可将其他仓库作为本仓库的子模块,并保持父项目和子项目相互独立。面对比较复杂的项目时,经常会用到。


语法


  • 将URL的仓库作为本仓库的子模块。执行后,git会将URL的仓库clone到 当前路径 下。
git submodule add URL
  • 后面可以 指定路径
git submodule add URL <path>

【注意】路径需要包含子模块的文件夹名称,如不包含会报错 <path> already exists and is not a valid git repo

【注意】如先前删除过目录,但没有及时commit提交到本地库,在引用同名称子模块时,会报错 <path> already exists in the index

  submodule 执行后,git会将URL的仓库clone到指定路径下。并于工程根目录创建一.gitmodules文件,包含子模块的路径、URL和分支信息。


正确的示例


git submodule add https://github.com/lvgl/lv_demos.git components/lv_demos
  • -b 指定分支版本。
git submodule add -b release/v8.0 https://github.com/lvgl/lv_demos.git components/lv_demos


clone完整源码


git clone --recurse-submodules URL

【注意】如直接clone,不加 –recurse-submodules,clone后会丢失子模块的文件。


辨识


  • 有子模块的项目,其根目录下会存在一 .gitmodules 文件。里面包含子模块的路径、URL和分支信息。

  • 浏览Github,也能很好的辨识出,如下图框选部分则为子模块。
    在这里插入图片描述


版权声明:本文为Mark_md原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Mark_md/article/details/121640755