如何在Git仓库中嵌套另一个子模块呢

背景

在实际的开发和学习过程中,尤其涉及到前后台共同开发时,需要同时管理前台和后台的Git仓库,此时在同一个Git仓库中添加另一个仓库为子模块仓库,在开发过程中就显得十分的方便和快捷。

具体实现

在Git中添加子模块是一个简单的过程。子模块允许你在一个Git仓库(称为父仓库)中嵌套另一个Git仓库(称为子模块仓库)。以下是添加子模块的步骤:

1、初始化父仓库(如果尚未初始化):

如果你还没有初始化Git仓库,首先需要在父项目的根目录下执行以下命令来初始化Git:

git init

2、添加子模块:

使用git submodule add命令来添加子模块。你需要提供子模块的URL和(可选的)路径。例如,如果你想在父仓库的my_submodule目录中添加一个子模块,可以执行:

git submodule add <repository_url> my_submodule

其中 <repository_url> 是子模块的Git仓库URL。这将在父仓库中创建一个名为my_submodule的目录,并将子模块的内容克隆到该目录中。同时,Git还会在父仓库的.git/modules目录下创建一个子模块仓库的克隆,并在父仓库的.git/config文件中记录子模块的信息。

3、提交更改:

在添加了子模块后,你需要将更改提交到父仓库中。首先,查看状态以确认子模块已经被添加:

git status

你应该能看到关于新添加的子模块的信息。然后,添加并提交这些更改:

git add .
git commit -m "Add submodule my_submodule"

4、克隆包含子模块的仓库:

当其他人克隆你的父仓库时,子模块目录最初会是空的。为了让子模块的内容被正确地拉取下来,克隆者需要执行以下命令:

git submodule init
git submodule update

或者,他们可以使用git clone --recurse-submodules命令来一次性克隆父仓库和所有子模块。

5、更新子模块:

如果你需要更新子模块到其仓库的最新状态,你可以进入子模块的目录并执行git pull。然后,回到父仓库的目录并提交对子模块的引用更改:

cd my_submodule
git pull
cd ..
git add my_submodule
git commit -m "Update submodule my_submodule"

6、实操截图展示

更新过子模块后,可以将子模块远端仓库的代码同步到父仓库路径下,且可以在VSCode的Source Control中查看到该子模块,便于在编译器中同时查看和修改2个仓库的代码。
Alt

注意

当子模块更新时,Git只存储子模块仓库的引用(即提交的哈希值),而不是子模块仓库的所有内容。这意味着父仓库的提交历史不会因为子模块的更改而膨胀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值