什么是 git 子模块
子模块英文是 submodule。
想象一下,你在开发一个大型项目(比如一个网站),其中一部分功能(比如一个通用的用户认证模块)实际上是另一个独立的 Git 仓库。你不想把这个独立仓库的代码直接复制到你的主项目里,因为这样不利于维护和更新。这时候,你就可以使用 Git 子模块。
Git 子模块允许你将一个 Git 仓库作为子目录包含到另一个 Git 仓库中。简单来说,就是在一个 Git 仓库里面引用了另一个 Git 仓库。这样做的好处是:
- 代码复用:可以方便地在多个项目中共享和使用同一个模块。
- 版本控制:可以独立地对子模块进行版本控制,并与主项目保持同步。
- 清晰的依赖关系:可以清晰地看到项目依赖了哪些外部模块。
怎么知道什么是 github 的子模块
查看 .gitmodules 文件。
这是最直接的方法。 Git 子模块的信息都存储在一个名为 .gitmodules 的文件中,该文件位于 Git 仓库的根目录下。
如果你的 Git 仓库包含子模块,那么根目录下一定会有 .gitmodules 文件。
.gitmodules 文件是一个文本文件,它包含了每个子模块的配置信息,例如子模块的路径和 URL。
示例 .gitmodules 文件:
[submodule "submodule_A"]
path = submodule_A
url = https://github.com/example/submodule_A.git
[submodule "submodule_B"]
path = libraries/submodule_B
url = git@github.com:another_example/submodule_B.git
在这个例子中,我们可以看到:
submodule_A是一个子模块,它的路径是submodule_A,URL 是https://github.com/example/submodule_A.git。submodule_B也是一个子模块,它的路径是libraries/submodule_B,URL 是git@github.com:another_example/submodule_B.git。
使用 git submodule status 命令
在 git 仓库根目录输入 git submodule status。

可以看到上图。
每一行都是一个子模块,子仓库。
直观的查看子模块
我们也可以通过 github 直接查看。

文件图标有个箭头的就是子模块。