git --- 子模块 submodule
git clone —recursive 介绍
git clone命令是Git版本控制系统中的一个常用命令,用于将远程仓库克隆到本地。而git clone --recursive则是在克隆时将子模块也一并克隆下来。子模块是指嵌套在主项目中的其他Git仓库,这样可以方便地管理多个相关的项目。
为什么要使用git clone —recursive
在某些情况下,主项目依赖于其他的子模块,这些子模块可能是外部的库或者其他的项目。如果只使用普通的git clone命令,只会将主项目克隆下来,而不会将子模块也一并克隆下来。这样就无法完整地获取到项目的所有代码和依赖。使用git clone --recursive命令可以解决这个问题,确保项目的完整性。
要使用git clone --recursive命令,只需要在克隆命令后面加上--recursive选项即可。例如:
git clone --recursive https://github.com/user/repo.git
这样就会将主项目和所有的子模块都克隆到本地。
git clone —recursive的原理
git clone --recursive命令的原理是通过.gitmodules文件来确定项目中的子模块信息。.gitmodules文件是一个纯文本文件,记录了子模块的路径、URL和提交版本等信息。当使用git clone --recursive命令时,Git会先克隆主项目,然后根据.gitmodules文件中的信息,逐个克隆子模块。
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和分支信息。
-b 指定分支版本。
git submodule add -b release/v8.0 https://github.com/lvgl/lv_demos.git components/lv_demos
git submodule update --init --recursive
更新仓库和子模块
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-04-04 cmake交叉编译配置文件 - XXX.toolchain.cmake
2018-04-04 编译出错 ------ 编译驱动出现 ERROR: Kernel configuration is invalid
2018-04-04 linux c 编程 ------ 获取时间,计算程序执行时间
2018-04-04 linux c 编程 ------ 程序入口参数,即 main 参数
2018-04-04 shell --- 入门介绍