Git -- submoudule子模块使用

news2025/8/9 9:09:53

文章目录

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

子模块的作用

        通常情况下,我们做项目时会有几个业务功能区分比较明确的模块,比如简单来说,一个项目我们可以分为认证授权模块、工具类模块、常规业务模块。
        而像认证授权模块、工具类模块这些公用模块会有很多项目去使用,所以这些模块不能放在某一个项目里面,而应该是一个单独的仓库,这个时候就可以使用 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.coloradmin.cn/o/34131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【外卖项目实战开发一】

文章目录1、软件开发整体介绍2、外卖项目介绍3、环境搭建数据库环境搭建创建数据库执行SQL脚本数据表maven项目搭建添加依赖:application.yml配置application启动类4、后台登录功能开发需求分析代码开发5、后台退出功能开发1、软件开发整体介绍 软件开发流程 角色分工 软件…

基于JAVA的企业人力人事资源管理系统OA,部门、人员、薪资、招聘功能齐全的项目【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86427647 摘要 随着知识经济的崛起,掌握了高新技术和具有现代管理理念的人已成为经济发展的原动力。一个企业要在市场竞争中取得优势地位,依靠的主要不是物质资源&…

FCPX插件:Stupid Raisins Title Pop (78个动画标题+2个额外背景)

fcpx插件:Stupid RAIsins Title Pop for Mac激活版是兼容Final Cut Pro x的一款动画标题字幕插件。Stupid RAIsins Title Pop mac版包含78个fcpx动画标题2个额外背景,可以快速拖放编辑,使用基本,连续,充满活力&#xf…

电容笔做的比较好的品牌有哪些?高性价比电容笔测评

现在,高技术在推动数字产品的发展,同时也在增加。不管是工作还是学习,大屏幕可以使图像更加清晰。无论现在或将来,平板电脑都将成为我们日常生活中不可或缺的一部分。一款简单易用的电容笔,能够极大地提高我们的工作效…

7.9 用户接口

目录 一 序言 二 应用层实现 三 内核层实现 一 序言 这一部分,我们简单介绍一下用户接口。从本质上讲,操作系统就是对计算机硬件资源进行一个封装,从而方便用户来使用。前面几部分,我们重点介绍了操作系统自身的一些功能&#…

SpringBoot SpringBoot 原理篇 1 自动配置 1.5 proxyBeanMethod

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.5 proxyBeanMethod1.5.1 ImportResource1.5.2 proxyBeanMethod1 …

Qt使用QAudioInput、QAudioOutput实现局域网的音频通话

本文旨在介绍一下用Qt来实现局域网音频通话功能 技术实现 QAudioInput、QAudioOutput(Qt采集和播放音频类) QUdpSocket(Qt的UDP通信类) 话不多说,直接上代码链接,想下载的朋友可以直接去gitee下载。 整体…

项目管理范围(上)

范围管理概述 产品范围与项目范围的区别: 产品范围是指产品或者服务所应该包含的功能,项目范围是指为了能够交付产品,项目所必须做的工作。 什么是WBS? 工作分解结构(简称WBS, Work Breakdown Structure…

科学孕育:婴幼儿食物过敏怎么办?

近年来,食物过敏的发病率呈明显上升趋势,已成为危害儿童健康的全球性问题。据统计,我国儿童食物过敏的发病率为3%~10%[1]。其中,0~4岁婴幼儿和学龄前儿童食物过敏的发病率最高。婴儿过敏反复发生.具有湿疹和食物过敏史的婴儿易患哮…

热门Java IDE——MyEclipse的数据库和持久化支持

MyEclipse支持开发者使用Java EE、Spring、JPA、Hibernate和POJOs快速开发以数据库为中心的应用程序,通过使用JDBC标准和嵌入式Derby数据库的数十个数据库的连接器,开发人员可以快速启动并运行。从持久性到逆向工程,再到可视化ER模型&#xf…

JS if else语句详解

在正常情况下,JavaScript 脚本是按顺序从上到下执行的,这种结构被称为顺序结构。如果使用 if、else/if 或 switch 语句,可以改变这种流程顺序,让代码根据条件选择执行的方向,这种结构被称为分支结构。 if语句 if 语句…

【微信小程序】实现页面跳转功能

🏆今日学习目标:第十三期——实现页面跳转功能 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:20分钟 🎉专栏系列:我的第一个微信小程序 文章目录前言实现效果事件如…

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

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

传奇列表获取失败与登录器太老怎么解决

一.登录器列表读取失败,无法获取登录器远程列表解决方案 1.查看登陆器列表地址是否能正常访问,登陆器读取的列表地址都是一个txt文本格式。如下图: 例如:我们的列表为: http://域名/123.txt,我们把列表复制到浏览器中查看是否能正…

锐捷MPLS跨域方案C1实验配置

目录 配置IPv4的BGP邻居 配置PE之间的Vpnv4邻居 此时配置PE与CE设备对接命令 手工配置为PE地址分配标签 MPLS隧道——跨域解决方案C1、C2讲解_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/127634890?ops_request_misc%257B%2522requ…

使用backdrop-filter实现elementui官网的模糊滤镜效果的和毛玻璃效果

前置 element-ui官网有一个属性很好看,可以看到,当滚动的时候,文字会被显示白色带阴影背景 你可能有点印象,因为公交车的时候也是类似于这种效果 他们是怎么做的呢?我看到源码使用到了 backdrop-filterbackground-sizebackground-image就实现了,很少的属性,达到了不错的效果,…

鲲鹏devkit训练营——《锁长期等待》项目解析

《锁长期等待》项目解析 通过本次实验学习掌握性能分析工具,利用性能分析工具找出程序中加锁范围不合理的地方并解决 安装web端性能分析工具 获取性能分析工具软件包 1、登录远程服务器 获取鲲鹏性能分析工具软件包上传到远端服务器 2、安装性能分析工具 使用…

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

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

mysql InnoDB存储引擎的锁机制

目录 前言 1. 锁的分类 1.1 实现方式 1.2 锁的粒度 2. 查询操作加锁方式 2.1 一致性非锁定读 2.2 一致性锁定读 3. 锁的算法 4. 锁的升级 5. 死锁 6.总结 前言 锁机制的目的是最大程度提高数据库的并发访问,另一方面确保可以以一致的方式读取和修改数据。…

Camunda工作流引擎简记

本文转载自玩转Camunda之实战篇-赶紧收藏起来吧_哔哩哔哩_bilibili 其中部分内容,经过本人修改 一、工作流相关介绍 BPM(BusinessProcessManagement),业务流程管理是一种管理原则,通常也可以代指BPMS(BusinessProcessManagementSuite)&#…