更新时间:2025-02-28 gmt 08:00

设置子模块-九游平台

配置代码仓库的子模块概述

子模块(submodule)是git为管理仓库共用而衍生出的一个工具,用户可以通过子模块将公共仓库作为子目录包含到用户的仓库中,并能够双向同步该公共仓库的代码,借助子模块用户能将公共仓库隔离、复用,能随时拉取最新代码以及对它提交修复,能大大提高用户的团队效率。

当仓库“test_fir”需要包含并使用仓库“test_sec”(第三方库,或者用户独立开发的,用于多个父项目的库),如果想要把它们当做两个独立的项目,同时又想在“test_fir”中使用“test_sec”,可以使用git的子模块功能。 子模块允许用户将一个git仓库作为另一个git仓库的子目录。 它能让用户将另一个仓库克隆到自己的仓库中,同时还保持提交的独立。

子模块将被记录在一个名叫“.gitmodules”的文件中,其中会记录子模块的信息:

[submodule "module_name"]      #子模块名称
path = file_path               #子模块在本仓库(父仓)中文件的存储路径。
url = repo_url                 #子模块(子仓库)的远程仓地址

其中,位于“file_path”目录下的源代码,将会来自“repo_url”

约束限制

如果“test_fir”仓库的内容将作为“test_sec”仓库的子模块,操作的用户需要有“test_sec”仓库的“设置”权限和代码的“提交”权限,请参考配置代码仓库级的权限提前进行配置。

在repo页面添加子模块

用户可以根据需要,选择以下任意方式添加子模块。

  • 用户进入要添加子模块的仓库九游平台首页,单击“代码”,如下图所示,单击扩展按钮,选择“新建子模块”,参考表格填写参数。

  • 用户进入需要添加子模块的仓库九游平台首页,单击“代码”,如下图所示,单击,选择“新建子模块”,参考表格填写参数。

  • 用户进入需要添加子模块的仓库九游平台首页,选择“设置 > 仓库管理 > 子模块设置” ,单击“新建子模块”,参考表格填写参数。

    参数填写完成后单击“确定”按钮,即可完成新建子仓库操作。子模块新建完成后,可以在仓库文件列表的对应目录内找到子模块(子仓库)内容,其对应的文件左侧图标为

    表1 新建子模块的字段说明

    字段

    填写说明

    子模块仓库路径

    必填项。选择一个仓库作为子仓库,可以选择跨项目的仓库。

    子模块仓库分支

    必填项。选择同步子仓库的目标分支到父仓库。

    子模块文件路径

    必填项。配置子模块文件在本仓库下的路径,注意用“/”分隔层级。

    提交信息

    作为用户新建子仓库的备注信息,可以在文件历史中查找到本次操作,限制2000个字符。

在git客户端添加子模块

  1. 添加submodule
    git submodule add  [] [-b ] []

    示例:

    git submodule add git@***.***.com:****/web-inf.git
  2. 拉取包含submodule的仓库
    git clone  [] --recursive

    示例:

    git clone git@***.***.com:****/web-inf.git --recursive
  3. 获取远端submodule更新
    git submodule update --remote
  4. 推送更新到子库
    git push --recurse-submodules=check
  5. 删除submodule
    1. 删除“.gitsubmodule”中对应submodule的条目。
    2. 删除“.git/config”中对应submodule的条目。
    3. 执行命令,删除子模块对应的文件夹。
      git rm --cached {submodule_path}    #注意更换为用户的子模块路径

      注意:路径不要加后面的“/”。

      示例:用户的submodule保存在“src/main/webapp/web-inf/”目录,则执行命令为:

      git rm --cached src/main/webapp/web-inf

编辑子模块

用户有代码仓的“设置”权限,才能编辑子模块,请参考配置代码仓库级的权限提前进行配置。

下图所示,“子模块仓库路径”表示子仓库git地址,单击“子模块仓库提交”,可查看子仓库的历史提交。单击“部署密钥同步”所在列的,可以把父仓库的部署密钥同步到子仓库,同步后,子仓库将继承父仓库的部署密钥。子模块校验结果列为存在,表示子仓库正常存在并可用。如果用户要删除此子模块,请单击“操作”列所在的

图1 子模块设置页面

相关文档

网站地图