Git 子模块(Submodule)的使用

2019-02-09  本文已影响35人  一瓣山河

什么是Git 子模块

开发中我们可能会遇到:某个工作中的项目需要包含并使用另一个项目。 可能是第三方库,也可能是独立的,复用于多个父项目的库。 那么问题来了:你想在一个项目中使用另一个,同时又想保持两个项目的相互独立。使用Git 自带的子模块功能就可以解决这个问题。

子模块的使用命令

创建子仓库

先进入父仓库目录下,然后执行命令:

git submodule add <仓库地址> <本地路径>

<本地路径>是可选项,默认情况下,子模块会在当前目录下面,将子项目放到一个与仓库同名的目录中。如果指定了本地路径,则会把子项目放在指定的本地路径下。
执行上面命令后,在父仓库根目录增加了.gitmodule文件。

[submodule  仓库名称]
    path = 仓库名称(或指定的本地路径)
    url = 仓库地址

clone 带有子仓库的git项目

git clone 带有子仓库的git仓库地址

这个命令并不会clone下子仓库的文件,只是会克隆下.gitmodule描述文件,需要执行下面的命令拉取子仓库文件。

// 初始化本地子项目配置
$ git submodule init

// 拉取子仓库文件
$ git submodule update

或者使用组合指令:

git submodule update --init --recursive

子仓库代码的修改和更新

如果在本地修改子仓库,在主仓库执行git status,会显示子仓库有修改。需要先在子仓库提交,然后再到主仓库提交代码。
由于父仓库和子仓库是两个独立的git仓库,所以最好在子仓库的开发中单独进行git相关操作,在父仓库不对子仓库文件做修改,只进行子仓库代码的拉取,并把修改提交上去。

上一篇下一篇

猜你喜欢

热点阅读