美文网首页
Git 子模块(Submodule)的使用

Git 子模块(Submodule)的使用

作者: 一瓣山河 | 来源:发表于2019-02-09 22:12 被阅读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相关操作,在父仓库不对子仓库文件做修改,只进行子仓库代码的拉取,并把修改提交上去。

    相关文章

      网友评论

          本文标题:Git 子模块(Submodule)的使用

          本文链接:https://www.haomeiwen.com/subject/gibzsqtx.html