美文网首页
Git子模块的简单使用

Git子模块的简单使用

作者: 铃鹿山大魔王 | 来源:发表于2018-08-28 13:46 被阅读107次

    子模块概述

    git子模块为git主项目下 独立 出来的 git仓库 ,可 单独 的进行代码的修改、提交、更新等操作。

    子模块使用

    添加子模块

    $ git submodule add <url>
    

    url 为子模块git仓库地址,我们只需要进入 主项目 的根目录或者 指定 目录 下,执行此命令即可。

    查看子模块文件变化

    $ git diff --submodule
    

    提交子模块

    提交子模块与提交普通git一致,但需要进入子模块所在的仓库,单独提交。与此同时,若此子模块在主工程中,则主工程也需执行提交。

    更新子模块

    更新子模块与更新普通git一致,但需要进入子模块所在的仓库,单独更新。

    删除子模块

    $ git rm --cached [name]
    $ rm -rf [name]
    $ rm .gitmodules
    $ vim .git/config
    

    删除子模块相关内容,例如下面的内容

    [submodule "submodule"]
            url = git@gitee.com:xxx.com/submodule.git
            active = true
    

    然后提交(主项目)修改信息至远程服务器

    克隆有子模块的项目

    克隆主工程

    $ git clone <url>
    

    url 为项目git仓库地址

    上面命令执行完成后,主项目仓库的代码会全部拉取到本地,但是子项目却只是一个文件夹。此时,必须对子模块进行 初始化更新

    子模块初始化

    $ git submodule init
    

    子模块更新

    $ git submodule update
    

    若在 git clone 后加入 --recursive 字段,也可以实现子模块初始化及更新操作。

    $ git clone --recursive <url>
    

    克隆带有子模块的项目,并更新子模块数据。

    子模块在Xcode上的使用

    git子模块适用于iOS项目,但由于iOS项目不只是简单的文件读取,需要 Target 引用,故子模块的 修改提交 需在 主工程 中进行。如此,则引用关系会跟随主项目修改提交,一并上传到远程服务器,其他用户下拉的代码,则包含子模块的引用关系。否则,只是简单的文件引入而没有引用关系,会导致子模块在项目中无法使用。

    相关文章

      网友评论

          本文标题:Git子模块的简单使用

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