一、 github 建立 submodule
- github 上建立我们的 submodule。

二、本地仓库建立
- 建立本地仓库。

git submodule add https://github.com/- 使用该命令,可以在本次仓库添加子模块(submodule)。
- 注意:子模块本质上是另一个代码仓库,对 submodule 的修改,只能在 submodule 对应的代码仓库修改和提交,然后由父代码仓库(即我们的 git_test 代码仓库)更新它下面的 submodule 最新状态。

- 父代码仓库提交 commit:更新子模块的状态。

- 同时,我们注意到:git 版本库中也增加了对 submodule 模块的 git 对象库的管理。

- 现在,我们在 github 上创建我们的远程仓库。
- 然后将本地仓库的代码推送到远程仓库。


- 然后我们回到远程仓库,可以看到
- .gitmodules 文件记录了当前仓库的所有子模块的文件名和 url 地址。
- 点击子模块的文件名,可以跳转到 submodule 对应的代码仓库。



- 我们删除本地仓库,然后重新从远程仓库拉取代码。

- 我们发现,从远程仓库直接拉取下来的代码,缺少了 .git/modules/git_submodules 目录。

- 父代码仓库的 git_submodules/ 目录为空。

三、子模块需要手动拉取
1. submodele 是空的目录
git submodule update --init --recursive

2. submodele 是非空的目录
- 起初父代码仓库的本地 submodule 和远程仓库的 submodule 是一致的。

- 当远程仓库的 submodule 进行了新的提交,父代码仓库的 submodule 不会自动更新。


- 使用命令:
git submodule update --remote进行 submudule 的更新。

- 接着,父代码仓库还要提交 submodule 的更新。

- 最后,将本地仓库上传到远程仓库。

本文主要介绍了在GitHub上建立submodule,以及本地仓库的建立方法。指出子模块本质是另一个代码仓库,对其修改需在对应仓库进行。还提到从远程仓库拉取代码时,父代码仓库的子模块目录可能为空,且远程子模块更新时,父代码仓库需手动拉取和提交更新。
1万+

被折叠的 条评论
为什么被折叠?



