提示:Git 子模块(Submodule)操作
一、Git 子模块(Submodule)是什么?
在父仓库下包含子仓库,相互独立,可单独对父仓库或者子仓库进行git操作,对两者开发保持独立运作。
二、使用步骤
1.创建子仓库
git submodule add <仓库地址> <本地路径>
<本地路径>为可选项,一般在当前目录对应下面,将子项目放到一个与仓库同名的目录中。如果指定了本地路径,则会把子项目放在指定的本地路径下。
执行上面命令后,在父仓库根目录增加了.gitmodule文件。
[submodule 仓库名称]
path = 仓库名称(或指定的本地路径)
url = 仓库地址
2.clone 带有子仓库的git项目
git clone 带有子仓库的git仓库地址
这个命令并不会clone下子仓库的文件,只是会克隆下.gitmodule描述文件,需要执行下面的命令拉取子仓库文件。
// 初始化本地子项目配置
$ git submodule init
// 拉取子仓库文件
$ git submodule update
或者使用组合指令:
git submodule update --init --recursive
三、子仓库代码的修改和更新
如果在本地修改子仓库,在主仓库执行git status,会显示子仓库有修改。需要先在子仓库提交,然后再到主仓库提交代码。
由于父仓库和子仓库是两个独立的git仓库,所以最好在子仓库的开发中单独进行git相关操作,在父仓库不对子仓库文件做修改,只进行子仓库代码的拉取,并把修改提交上去。