Git Submodule的使用

本文深入讲解GitSubmodule的使用方法,包括子仓库的添加、更新和删除流程,以及如何在clone项目时一并获取所有子模块,适用于需要管理复杂项目结构的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git Submodule 允许一个git仓库,作为另一个git仓库的子目录,并且保持父项目和子项目相互独立。

如果项目中包含Submodules,在pull时不会同时获取submodules的源码,需要执行本地初始化的命令,再同步远端submodule源码。
git submodule init     //初始化本地.gitmodules文件
git submodule update   ///同步远端submodule源码

//或者使用组合指令
git submodule update --init --recursive

如果希望clone 的时候包含所有submodules,可以使用下面的命令

git clone --recurse-submodules <url>
子仓库创建

新建一个父仓库main,一个子仓库sub。
将父仓库克隆到本地。

git clone ssh

进入父仓库,并添加子仓库。

git submodule add ssh

添加成功后,在父仓库根目录增加了.gitmodule文件,并且在父仓库的git 配置文件中加入了submodule段。

[submodule "sub"]
    path = lib
    url = ssh://git@xxxx.git
子仓库更新

添加子仓库之后,主仓库的对应目录下,并不是sub仓库的文件,而是对应的commit id
在子仓库,切换到master分支,并git pull最新代码之后,回到主仓库目录,会显示子仓库修改,需要在主仓库提交修改,即修改指定的commit id。
如果在本地修改子仓库,需要先在子仓库提交,然后再到主仓库提交代码。

子仓库删除

删除.gitsubmodule里相关部分
删除.git/config 文件里相关字段
删除子仓库目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值