增加submodule
git submodule add <url> <path>
- url:替换为自己要引入的子模块仓库地址
- path:要存放的本地路径
执行添加命令成功后,可以在当前路径中看到一个.gitsubmodule文件,里面的内容就是我们刚刚add的内容
如果在添加子模块的时候想要指定分支,可以利用 -b 参数
git submodule add -b <branch> <url> <path>
例子如下:
git submodule add https://github.com/tensorflow/benchmarks.git 3rdparty/benchmarks
[submodule "3rdparty/benchmarks"]
path = 3rdparty/benchmarks
url = https://github.com/tensorflow/benchmarks.git
clone
克隆一个包含子仓库的仓库目录,并不会clone下子仓库的文件,只是会克隆下.gitmodule描述文件,需要进一步克隆子仓库文件。
如果clone的时候,想把submodule也checkout出来,需要用:
git clone xxx --recurse-submodules
另一种方法是,clone出来主项目之后,执行下面:
git submodule init
git submodule update
submodule变化
submodule有三种变化:
- 当前项目下子模块文件夹内的内容发生了未跟踪的内容变动;
- 当前项目下子模块文件夹内的内容发生了版本变化;
- 当前项目下子模块文件夹内的内容没变,远程有更新;
详细需要参考:知乎
只说下第三种情况,这种情况如果想拉取最新的submodule,
cd project-sub-1
git pull origin master
网友评论