科技微讯

git 的 submodules 是什么以及如何使用

在 github 看到一些项目,例如小米 miui tracker、vtbs.moe 等,项目里有一些奇怪的文件夹,这些文件夹有自己的 .gitignore,是一个独立的 git 仓库。所以一个 git 仓库里嵌套了另一个 git 仓库,这是怎么实现的?

首先,这是 git 的 submodule 功能,被嵌套的 git 仓库对于当前仓库而言是一个 submodule。之所以这样操作,是因为当前仓库用到这个子仓库的代码,但是开发者认为这个子仓库的代码是一个完整的独立的整体,不希望把它整合进主仓库中,于是把它独立出来进行开发管理。这样也方便其他仓库共享这个子仓库的代码,有点像 npm module,只是 git submodule 没有发布到 npm 中。

在知乎找到一篇文章,对这个问题解释得很清楚,包括 clone 到包含 submodule 的仓库之后怎么把 submodule 下载下来等等。

暂无评论