侧边栏壁纸

Git的submodule功能

  • vegehunter 2025年10月26日 28阅读 0评论
  • 使用submodule可以在仓库A中引用仓库B的特定版本的代码,例如你的项目中使用了另外的开源项目,可以将它作为submodule来管理。


    使用方法

    1. 添加子模块

    在一个项目中新增一个子模块,用下面的命令

    git submodule add <repository-url> <path>

    git将会完成以下工作:

    • 创建指定的子模块目录path
    • 在项目的根目录创建文件.gitmodules,在内部记录子模块的URL和路径。
    • 自动拉取子模块仓库的默认分支的最新commit。

    2. 提交子模块修改

    • 在子模块的目录中,使用git pullgit checkout等正常修改commit id
    • 在父项目中,子模块的变更会被识别为一个发生在path_of_submodule的修改,正常提交即可。

    3. 拉取/更新子模块

    如果在已有的项目中,存在子模块的commit id和父项目记录的子模块commit id不一致的情况(包括子模块目录为空),那就需要额外拉取一下子模块的代码

    git submodule update --init

    这个命令实际上做了两件事情,

    • 如果.gitmodules的内容未被配置到父项目的.git/config文件,那么执行git submodule init进行配置。
    • 检查父项目的commit id,进入子模块目录中git checkout到对应的commit id

    4. 克隆一个带子模块的项目

    如果要克隆的项目带有子模块,那可以使用--recurse-submodules选项递归克隆所有子模块,一步到位。

    git clone --recurse-submodules <repository-url>
    0

    —— 评论区 ——

    昵称
    邮箱
    网址
    取消
    博主栏壁纸
    12 文章数
    13 标签数
    8 评论量
    最新评论