问题
如果在一个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之后,这个文件和这个子仓库有关的部分就会消失。