Git -- submoudule子模块使用

news/2024/5/2 14:39:31/文章来源:https://blog.csdn.net/qq_40096897/article/details/128033071

文章目录

    • 子模块的作用
    • 添加子模块
    • 拉取带子模块的项目
    • 修改子模块代码

子模块的作用

        通常情况下,我们做项目时会有几个业务功能区分比较明确的模块,比如简单来说,一个项目我们可以分为认证授权模块、工具类模块、常规业务模块。
        而像认证授权模块、工具类模块这些公用模块会有很多项目去使用,所以这些模块不能放在某一个项目里面,而应该是一个单独的仓库,这个时候就可以使用 git submoudule 去引用和管理公用模块。
        引用子模块的定义就是,git 子模块允许你将一个 git 仓库作为另一个 git 仓库的子目录。能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。子模块适用于主项目对子模块有依赖关系,却又并不关心子模块的内部开发的流程和细节;适用于整体复用的情况;

添加子模块

首先拉取主项目到本地

git clone -b origin/master http://xxx.xx.xx.xxx/cnaec/server.git
cd server
git pull

然后添加子模块,并推送到远程仓库
这里我添加了两个模块

git submodule add http://xxx.xx.xx.xxx/base-moudule/auth-moudule2.git
git submodule add http://xxx.xx.xx.xxx/base-moudule/utils-moudule.git
git add.
git commit -m "add submodules"
git push

添加完之后,项目里面会生成一个 .gitmodules 文件,里面是子模块的地址配置,有这个就表示子模块添加成功了。
在这里插入图片描述
更新子模块代码
刚添加完的子模块是一个空文件夹,里面没有内容,我们需要更新一下子模块项目

git submodule init
git submodule update

拉取带子模块的项目

第一种方法:

git clone http://xxx.xx.xx.xxx/cnaec/server.git --recurse-submodules

第二种方法:

git clone http://xxx.xx.xx.xxx/cnaec/server.git
cd server
git submodule init
git submodule update

修改子模块代码

当我们拉取了主项目和子模块并修改了子模块内容的时候。
提交子模块的时候主项目会生成一个新的指针字符串,指向当前子模块的提交记录。
切记,子模块做了修改之后,这个文件提交的时候一定不要漏了。每一个子模块都有一个对应的这样的文件
在这里插入图片描述
我们看一下现在的仓库信息 auth-moudule 显示版本是 65638680
在这里插入图片描述
点进这个版本,我们可以看到对应的提交记录是我们最新提交的一次记录
在这里插入图片描述
如果不提交指针文件的话,其他人在拉取项目的时候就拉取不到我们提交的子模块的最新代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_225356.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis技术探索】「高可用架构模式」哨兵(sentinel)模式实现主从故障互切换模式详解

哨兵(sentinel)模式实现主从故障互切换模式详解Redis的多种模式Redis单机模式Redis单机模式的优点Redis单机模式的缺点Redis主从复制旧版本配置新版本配置查看主节点信息主从模式的优点主从复制的弊端Redis哨兵模式分析哨兵结构组成哨兵模式的主从切换Re…

重点,一文掌握ReentrantLock加解锁原理!|原创

本文详细讲解了 ReentrantLock 加锁和释放锁的原理,以及和 Synchronized 的对比。本文较长,建议收藏!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达简要总结 ReentrantLock实现原理:volati…

Android入门第33天-Android里的弹出式对话框

简介 Android Studio里在4.0前有一种ProgressDialog,这个已经淘汰了。我们完全可以使用ProgressBar来取代。但是还有一种Dialog叫PopWindow,它是一种“可阻塞式Dialog”。即弹出后除非你给它一个“动作”否则就一直显示在那。 今天我们就来看看这种Dia…

【Linux】基础IO —— 动静态库的制作与使用

🌈欢迎来到Linux专栏~~动静态库的制作与使用 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自…

Spring Boot 检索定时任务

概述 应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持。 Elasticsearch是一个分布式搜索服务,提…

Unity3D占用内存太大怎么解决呢? -下

什么时候才是UnusedAssets?看一个例子: Object obj Resources.Load("MyPrefab"); GameObject instance Instantiate(obj) as GameObject; ......... Destroy(instance); 创建随后销毁了一个Prefab实例,这时候 MyPrefab已经没有被实际的物体…

5.XMLHttpRequest对象

XMLHttpRequest简称xhr,是浏览器提供的Javascript对象。之前我们使用的都是jQuery中的Ajax,现在我们使用原生JS的Ajax 目录 1 GET请求 1.1 不带参数请求 1.2 带参数请求 2 URL的编码与解码 2.1 编码 encodeURI() 2.2 解码 decodeURI() 3 …

【通用设计方法】之接收异常保护

目录 前言 一、接收异常保护 二、超短包、背靠背的支持 后记 前言 为了系统的鲁棒性,我们常常会做一系列的异常保护功能,避免系统挂死。 这里仅仅介绍接收保护的某些设计思路,抛砖引玉。 一、接收异常保护 设计思路:通过可配…

数据可视化大屏设计

在数据业务展示场景中,数据可视化大屏已经变得十分常见。那么在设计思路上,数据可视化大屏应当遵循什么样的设计逻辑?本篇文章里做了介绍,一起来看一下。 一、数据大屏的应用场景 1、大型会议 2、业务展示 二、数据大屏分类 1、展…

C语言源代码系列-管理系统之会员计费系统

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过…

【Python百日进阶-WEB开发-冲進Flask】Day183 - Flask数据库ORM基础、增加

文章目录一、day03项目环境和结构搭建1.1 flask-script1.1.1 flask-script是干什么的?1.1.2 flask-script安装1.1.3 flask-script的使用1.1.3.1 创建Manager实例1.1.3.2 初始化实例出错与解决1.1.4 终端启动1.1.4.1 查看runserver参数1.1.5 自定义添加manager命令1.…

linux篇【11】:linux下的线程<前序>

目录 一.linux下的线程 1.linux下的线程概念 (1)教材上粗略的 线程 定义 (2)线程的引入 (3)线程真正定义 以及 示意图 (4)linux 和 windows等其他操作系统的线程对比 &#xf…

新的趋势:From Big to Small and Wide data

新的趋势:From Big to Small and Wide data 所以,在这个时候,作为率先提出要做 MySQL 开源 HTAP 数据库的 StoneDB,想要稍微冷静一下。 不是说我们不做 HTAP 了,而是有了一个新的思路。这个思路,也同样来…

【亲测】网址引导页管理系统

介绍: 易航网址引导系统-网址引导页管理系统去授权版一款极其优雅的易航网址引导页管理系统, 如果有问题可以跟我反馈,共同进步。祝各位道友一路飞升,顶峰相见!内置12套模板和防墙插件。 项目亮点: 1、…

Redis基础命令(String类型)Value为JSON

目录 String类型(存储的值为JSON形式) 问题: 解决办法: 示例: 实际操作: 总结: String类型(存储的值为JSON形式) 问题: Redis没有类似MySql中的表的概…

2022年戈登·贝尔奖授予等离子体加速器突破研究

ACM 总裁Cherri Pancake(图片来源:网络) 11月17日,在达拉斯举行的SC22颁奖典礼上,ACM将2022年戈登贝尔奖(Gordon Bell Prize)授予了一组研究人员,他们利用四台超级计算机&#xff08…

【Flink】基本转换算子使用之fliter、flatMap,键控流转换算子和分布式转换算子

文章目录一 Flink DataStream API1 基本转换算子的使用(1)flitera 使用匿名类实现b 使用外部类函数实现b 使用flatMap实现(2)flatMapa 使用匿名类实现b 使用匿名函数实现2 键控流转换算子(1) keyBy&#xf…

中国互联网众筹行业

近些年,中国互联网发展迅速,众筹这种起源于美国的新型互联网金融模式更是一直处于风口浪尖。在“大众创业、万众创新”的背景下,这种低门槛的融资模式也深受欢迎,加上阿里、京东、苏宁三大电商的巨头的相继入场,更令这…

IMS各网元的主要功能

文章目录用户注册时: 手机发出一个注册消息到他所在的拜访地的P。 比如,他是山西太原的用户,他这时候到了北京,那么这个时候,他要注册到IMS网络里面的话,这个P-CSCF就是北京的P-CSCF,这个北京的…

CAS号:376364-38-4,rCRAMP (rat)

rCRAMP (rat) 是一种大鼠组织蛋白酶相关的抗菌肽,有助于大鼠脑肽/蛋白质提取物的抗菌活性。rCRAMP (rat) 是大鼠中枢神经系统先天免疫系统的关键参与者。rCRAMP (rat) is the rat cathelin-related antimicrobial peptide. rCRAMP (rat) contributes to the antibac…