Git子模块使用说明
介绍
前端不同应用存在公共的脚本或样式代码,为了避免重复开发,将公共的代码抽取出来,形成一个公共的 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子模块使用说明的更多相关文章
- Git子模块引用外部项目
Git子模块(submodule)简介 经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目.也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的.这个场景下一个常见的 ...
- Git 子模块:git submodule
imtianx 2018年03月08日阅读 2057 Git 子模块:git submodule 工作中,可能会遇到在一个Git仓库 中添加 其他 Git 仓库的场景.比如,在项目中引用第三方库.或者 ...
- jenkin+Git子模块自动拉取代码
jenkins+Git子模块自动拉取代码 添加Git子模块 先克隆想要添加子模块的仓库git clone ssh://git@ip:port/user/project.git,这个是主目录. 进入仓库 ...
- git submodule git 子模块管理相关操作
Git 子模块操作相关的一些命令备忘: # 当使用git clone下来的工程中带有submodule时,初始的时候 submodule的内容并不会自动下载下来的,需执行如下命令: git submo ...
- 手把手教你把 Git 子模块更新到主项目
本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把 Git 子模块更新到主项目中去. 首先,把fork的skywalking项目克隆到本地 ...
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- Git 子模块 - submodule(转)
原文地址: http://www.cnblogs.com/kelsen/p/5918672.html 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开 ...
- git 子模块
为了方便各个子模块独立开发,或使用第三方不断更新的仓库,可以使用子模块来引用. 子模块对应的源码是子模块仓库的克隆. git submodule 与 subtree对比 git submodule 允 ...
- git子模块submodule
添加submodule: git submodule add 子模块git地址 把这个module放置的文件夹(这个文件夹须事先不存在) git submodule add http://xxx.x ...
- git子模块使用
如下项目有多个标红的子模块 1.首先进入每个子模块目录,init初始化子模块仓库,然后提交远程. 2.在每个子目录都初始化好仓库后,进入lv-qggz主目录,只初始化该仓库,然后依次添加子模块的仓库地 ...
随机推荐
- 深谈Spring如何解决Bean的循环依赖
1. 什么是循环依赖 Java循环依赖指的是两个或多个类之间的相互依赖,形成了一个循环的依赖关系,这会导致程序编译失败或运行时出现异常.下面小岳就带大家来详细分析下Java循环依赖. 简单来讲就是:假 ...
- vue3组合式API介绍
为什么要使用Composition API? 根据官方的说法,vue3.0的变化包括性能上的改进.更小的 bundle 体积.对 TypeScript 更好的支持.用于处理大规模用例的全新 API,全 ...
- js函数-参数默认值
1. 在es6之前必须通过函数内部实现 就像以下的几种情况: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数 ...
- Spring中TranslationDefinition接口规定的七种类型的事务传播行为及其意思
- ADG无法切换:报错 ORA-16467
现象: ADG无法切换:验证时就报错 ORA-16467 记录问题,顺便展现一次troubleshooting的心路历程. 具体查询: 在主库操作, @primary 切换验证: alter data ...
- 2020-12-30:生产环境 CPU 占用过高,你如何解决?
福哥答案2020-12-30: 1.top + H 指令找出占用 CPU 最高的进程的 pid. 2.top -H -p.在该进程中找到,哪些线程占用的 CPU 最高的线程,记录下 tid. 3.js ...
- 2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?
2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么? 福哥答案2021-03-06: 这是面试中被问到的.实力有限,真正的答案还不知道.我的想法是a=1是原子操作,a=b不 ...
- ABP - 初识 ABP
ABP框架 ABP是用于创建现代化Web应用程序的完整体系结构和强大的基础架构,以模块化的方式进行开发,所有模块以nuget包的方式提供,开箱即用,遵循最佳实践和约定,提供SOLID开发经验. 缩写 ...
- linux LVM和磁盘配额
目录 一.LVM原理 二.LVM的命令 三.创建lvm过程 四.扩容 五.磁盘配额 一.LVM原理 lvm是逻辑卷管理,可以让用户动态管理磁盘,不用考虑物理磁盘的问题,可以快速扩充磁盘大小,可以不用一 ...
- kali系统安装redis步骤
环境: 攻击机:Kali 5.16.0-kali7-amd64 192.168.13.78 靶机: Kali 5.16.0-kali7-amd64 192.168.13.94 安装 ...