Git子模块使用说明

2023-09-04,,

介绍

前端不同应用存在公共的脚本样式代码,为了避免重复开发,将公共的代码抽取出来,形成一个公共的 git 子模块,方便调用和维护。

软件架构

本仓库代码将作为 git 子模块,被引用到其他仓库中,不可单独运行。

使用说明

1. 添加子模块

git submodule add https://github.com/*.git /src/utils/common

git submodule add [仓库 url] [项目中的路径(执行后会用最后一级名称创建文件夹)],如图:

注意:子模块的路径不能是已存在的文件夹,否则会报错。

2. 更新子模块

可以在单独的项目中修改,也可以在项目中修改,修改后需要提交到远程仓库,其他项目才能更新到最新的代码。

git submodule init
git submodule update

3. 删除子模块

    删除子模块文件夹
git rm -r /src/utils/common
    删除 .gitmodules 文件中相关子模块的信息,类似于:
[submodule "src/utils/common"]
path = src/utils/common
url = https://gitee.com/*.git
    删除 .git/config 中相关子模块信息,类似于:
[submodule "src/utils/common"]
url = https://gitee.com/*.git
active = true
    删除 .git 文件夹中的相关子模块文件
$ rm -rf .git\modules\src\utils\common

Jenkins

在 Jenkins 中使用子模块,需要配置两个地方:

1. 需要在构建前执行以下命令

git submodule update --init --recursive

2. 配置凭证,用于拉取子模块代码

    选择配置-源码管理

    新增“高级子模块行为”

    勾选“使用默认的远程父仓库凭证”

注意事项

    由于部分项目没有使用 TypeScript,考虑到兼容性问题,本项目使用 JavaScript 编写。如果在 TypeScript 项目中引用,需要在 shims-vue.d.ts 中声明模块。
// 替换为对应的路径
declare module "@/utils/common/*";

参考资料

Git: submodule 子模块简明教程

Git子模块使用说明的相关教程结束。

《Git子模块使用说明.doc》

下载本文的Word格式文档,以方便收藏与打印。