如何解决一个git仓库中嵌套一个git仓库的问题

问题

如果在一个git仓库中嵌套了一个git仓库,那么被嵌套的git仓库的改动,不能被大git仓库检测到。
即:仓库A的代码中包含仓库B,A不会检测到B的改动。但是我们常常会在代码中引入其他仓库,那应该怎么解决呢?

解决方案

我们可以使用submodule,我们在引入子仓库时,使用如下命令即可:


git submodule add https://github.com/chaconinc/DbConnector

作用类似git clone,但是他会在父仓库的下面新建.gitmodules文件,并且包含以下内容


[submodule "apps/firstApp"]
	path = apps/firstApp
	url = https://github.com/muchang/mean-seed-app.git

这一段表示子仓库的位置,以及子仓库的远程仓库的地址。

当我们删除子仓库并且commit之后,这个文件和这个子仓库有关的部分就会消失。