使用情景
有一个父项目的远程仓库,目前为止没有使用任何子模块,但因新业务的需求,父项目准备使用一个名为 son 的子项目作为子模块,son 这个项目有自己的远程仓库,目前我们本地电脑上只有一个先前没有使用任何子模块的父项目的本地目录。
新添加子模块
在本地的父仓库的目录中插入一个子模块并使用,假设父仓库的目录是 D:/father/
首先在 D:/father/ 中点击 git bash here,然后把远程库 son 作为子模块添加进来,假设这里 son 只有一个 master 分支:
git submodule add -b master git@Host:username/son.git son
现在当前目录下新出现了一个空文件夹 son ,如果这时运行 git status ,会看到当前工作目录下会多出两个文件:
.gitmodules
son
第一项记录了远程项目和拉取到本地的子模块的映射,我们一般不用在意它。
第二项是项目文件夹记录,这是什么意思呢?这里 son 是工作目录中的一个子目录,但 Git 会将它视作一个子模块。当不在那个目录中时,Git 并不会跟踪它的内容, 而是将它看作子模块仓库中的某个具体的提交。(注意此时 son 目录中空空如也哈!因为我们还没有把远程的文件拉取过来呢!)
现在把多出来的这两项提交