git创建子模块
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。
Git 通过子模块来解决这个问题。 子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。
添加子模块
添加一个远程仓库项目 https://github.com/chaconinc/DbConnector 子模块到一个已有主仓库项目中。命令如下:
git submodule add 命令后面加上想要跟踪的项目的相对或绝对 URL 来添加新的子模块。
//可将该子模块添加到file文件夹中(可选)
//这时,你会看到一个名为 file 的文件夹在你的主仓库目录中
git submodule add https://github.com/chaconinc/DbConnector file
在主仓库添加完子模块后,需要保存提交上传。
git add .
git commit -m "添加子模块"
git push origin branchName
更新子模块
当子模块中有更新时,需要手动更新拉取到最新信息
// 更新项目内子模块到最新版本
git submodule update
// 更新子模块为远程项目的最新版本
git submodule update --remote
删除子模块
删除子模块比较麻烦,需要手动删除相关的文件,否则在添加子模块时有可能出现错误 ,以删除 file 子模块仓库文件夹为例
// 删除子模块文件夹
$ git rm --cached GWToolkit $ rm -rf GWToolkit//删除.gitmodules文件中相关子模块的信息,类似于:
[submodule "GWToolkit"]path = GWToolkiturl = https://github.com/iphysresearch/GWToolkit.git//删除
.git/config中相关子模块信息,类似于:[submodule "GWToolkit"]url = https://github.com/iphysresearch/GWToolkit.gitactive = true//删除
.git文件夹中的相关子模块文件$ rm -rf .git/modules/GWToolkit
Clone 包含子模块的项目
对于你的主仓库项目合作者来说,如果只是 git clone 去下载主仓库的内容,那么你会发现子模块仓库的文件夹内是空的!
此时,你可以像上面「添加子模块」中说到的使用
git submodule update --init --recursive
来递归的初始化并下载子模块仓库的内容。
也可以分初始化和更新子模块两步走的方式来下载子模块仓库的内容:
$ git submodule init # 初始化子模块
$ git submodule update # 更新子模块
但是,如果你是第一次使用 git clone 下载主仓库的所有项目内容的话,我建议你可以使用如下的代码格式来把主仓库和其中子模块的所有内容,都一步到位的下载下来:
$ git clone --recursive <project url>
以后可以在子模块仓库目录下使用 git pull origin main 或者 git push 等来进行更新与合并等操作。
相关文章:
git创建子模块
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。 Git …...
把Deepin塞进U盘,即插即用!Deepin To Go来袭
前言 小伙伴之前在某篇文章下留言说:把Deepin塞进U盘的教程。 这不就来了吗? 事实是可以的。这时候你要先做点小准备: 一个大小为8GB或以上的普通U盘 一个至少64GB或以上的高速U盘 一个Deepin系统镜像文件 普通U盘的大概介绍࿱…...
给【AI硬件】创业者的论文、开源项目和产品整理
一、AI 硬件精选论文 《DrEureka: Language Model Guided Sim-To-Real Transfer》 瑜伽球上遛「狗」这项研究由宾夕法尼亚大学、 NVIDIA 、得克萨斯大学奥斯汀分校的研究者联合打造,并且完全开源。他们提出了 DrEureka(域随机化 Eureka)&am…...
模拟面试题卷二
1. 什么是JavaEE框架,你能列举一些常用的JavaEE框架吗? 答:JavaEE框架是一套用于开发企业级应用的技术规范和工具集合。常用的JavaEE框架有Spring、Hibernate、Struts、JSF等。 2. 请解释一下面向对象技术和设计原则是什么,你能…...
22种常用设计模式示例代码
文章目录 创建型模式结构型模式行为模式 仓库地址https://github.com/Xiamu-ssr/DesignPatternsPractice 参考教程 refactoringguru设计模式-目录 创建型模式 软件包复杂度流行度工厂方法factorymethod❄️⭐️⭐️⭐️抽象工厂abstractfactory❄️❄️⭐️⭐️⭐️生成器bui…...
Java面试题:对比ArrayList和LinkedList的内部实现,以及它们在不同场景下的适用性
ArrayList和LinkedList是Java中常用的两个List实现,它们在内部实现和适用场景上有很大差异。下面是详细的对比分析: 内部实现 ArrayList 数据结构:内部使用动态数组(即一个可变长的数组)实现。存储方式:…...
ping: www.baidu.com: 未知的名称或服务(IP号不匹配)
我用的是VMware上的Red Hat Enterprise Linux 9,出现了能联网但ping不通外网的情况。 问题描述:设置中显示正常连接,而且虚拟机右上角有联网的图标,但不能通外网。 按照网上教程修改了/etc/resolv.conf和/etc/sysconfig/network-…...
谷神前端组件增强:子列表
谷神Ag-Grid导出Excel // 谷神Ag-Grid导出Excel let allDiscolumns detailTable.getAllDisColumns() let columnColIds columns.map(column > column.colId) let columnKeys columnColIds.filter(item > ![select, "_OPT_FIELD_"].includes(item)) detailT…...
测试cudaStream队列的深度
测试cudaStream队列的深度 一.代码二.编译运行[得出队列深度为512] 以下代码片段用于测试cudaStream队列的深度 方法: 主线程一直发任务,启一个线程cudaEventQuery查询已完成的任务,二个计数器的值相减 一.代码 #include <iostream> #include <thread> #include …...
海康威视 isecure center 综合安防管理平台任意文件上传漏洞
文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复方案 前言 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于综合安防、大数据服务和智慧业务。 海康威视其产品包括摄像机、多屏控制器、交通产品、传输产品、存储产品、门禁产品、消…...
shadertoy-安装和使用
一、安装vscode 安装vscode流程 二、安装插件 1.安装glsl编辑插件 2.安装shader toy插件 三、创建glsl文件 test.glsl文件 float Grid(float size, vec2 fragCoord) {vec2 r fragCoord / size;vec2 grid abs(fract(r - 0.5) - 0.5) / fwidth(r);float line min(grid…...
matlab线性多部法求常微分方程数值解
用Adamas内差二步方法,内差三步方法,外差二步方法,外差三步方法这四种方法计算。 中k为1和2. k为2和3 代码 function chap1_adams_methodu0 1; T 2; h 0.1; N T/h; t 0:h:T; solu exact1(t);f f1; u_inter_2s adams_inter_2steps(…...
前端页面实现【矩阵表格与列表】
实现页面: 1.动态表绘制(可用于矩阵构建) <template><div><h4><b>基于层次分析法的权重计算</b></h4><table table-layout"fixed"><thead><tr><th v-for"(_, colI…...
GPT4v和Gemini-Pro调用对比
要调用 GPT-4 Vision (GPT-4V) 和 Gemini-Pro,以下是详细的步骤分析,包括调用流程、API 使用方法和两者之间的区别,以及效果对比和示例。 GPT-4 Vision (GPT-4V) 调用步骤 GPT-4 Vision 主要通过 OpenAI 的 API 进行调用,用于处…...
破布叶(Microcos paniculata)单倍型染色体级别基因组-文献精读22
Haplotype-resolved chromosomal-level genome assembly of Buzhaye (Microcos paniculata) 破布叶、布渣叶(Microcos paniculata)单倍型解析染色体级别基因组组装 摘要 布渣叶(Microcos paniculata)是一种传统上用作民间药物和…...
浅谈RC4
一、什么叫RC4?优点和缺点 RC4是对称密码(加密解密使用同一个密钥)算法中的流密码(一个字节一个字节的进行加密)加密算法。 优点:简单、灵活、作用范围广,速度快 缺点:安全性能较差&…...
uniapp微信小程序开发物料
开发工具 HBuilder: HBuilderX-高效极客技巧 vscode 1、在vscode中新建一个项目npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 2、在HBuilder中可以可视化进行新建项目 路由 在app.json文件中配置pages路由路径 路由跳转方法 uni.navigateTo(OBJECT)…...
大数据工程师如何做到数据可视化?
好的数据可视化作品都是通过不断的数据对比分析实战出来的。 今天给大家带来一篇大数据工程师干货,从多角度解析做数据可视化的重要性,并解读一些适用的应用场景。大数据工程师们刷到这篇文章时一定要进来看看,满满的干货。 目录 1. 什么是数…...
Java 序列化与反序列化
Java 序列化是一种将对象的状态转换为字节流的机制,以便可以将该对象的状态保存到文件、数据库或通过网络传输。在反序列化过程中,这些字节流可以被重新转换为对象。序列化主要用于以下几种情况: 持久化存储:将对象的状态保存到文…...
自定义防抖注解
问题场景 在开发中由于可能存在的网络波动问题导致用户重复提交,所以自定义一个防抖注解。设计思路:自定义注解加在接口的方法上,注解中设置了SPEL表达式,可以通过SPEL表达式从接口参数中提取Redis的Key,以这个Key作为…...
跨平台兼容技术选型:轻量级Android应用Windows运行解决方案
跨平台兼容技术选型:轻量级Android应用Windows运行解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与多设备协同的趋势下,…...
终极窗口管理指南:如何让重要窗口始终置顶提升3倍工作效率
终极窗口管理指南:如何让重要窗口始终置顶提升3倍工作效率 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否曾经在视频会议时,会议窗口突然被弹出的…...
【硬核】K8s GPU调度从入门到“精通”:不止Device Plugin,还有MIG、DRA和那些你踩过的坑
K8s GPU调度从入门到“精通”:不止Device Plugin,还有MIG、DRA和那些你踩过的坑你以为把GPU挂上K8s就万事大吉了?错!调度策略、硬隔离、软隔离、抢占回收…每一个环节都可能是你烧钱的坑。本文从实战出发,手把手教你如…...
ESP32/ESP8266轻量级MQTT连接管理库espMqttManager
1. 项目概述espMqttManager是一个面向 ESP32/ESP8266 平台、基于 Arduino 框架的轻量级 MQTT 连接管理库。它并非独立 MQTT 协议栈,而是对espMqttClient(由marvinroger 开发的高性能异步 MQTT 客户端)进行工程化封装的“胶水层”,…...
C++ ODB ORM 实战指南
好的,这是一份关于在 C 中使用 ODB ORM 的指南,涵盖从基础概念到实际应用的各个方面。 1. ODB ORM 简介 对象关系映射 (ORM) 是一种编程技术,用于在面向对象的编程语言(如 C)和关系型数据库之间建立映射关系。它允许开…...
AI营销SaaS榜单评测:原圈科技如何助力品牌客户破局增长?
本文深度探讨AI营销行业趋势与SaaS产品评选标准。在众多解决方案中,原圈科技的AI营销SaaS平台凭借其领先的技术底层能力、产品成熟度及客户成功案例,在市场适配度与服务落地性等多个维度下表现突出,被普遍视为企业实现精细化营销升级的有力选…...
LCC-S无线电能传输的Pi移相控制与SS结构效果显著
LCC-S无线电能传输pi移相控制输出电压,效果很棒 SS结构,与其他低阶高阶拓扑也可以做 SS拓扑最近在捣鼓无线电能传输系统时,意外发现LCC-S拓扑搭配π型移相控制,输出效果堪比美颜相机里的磨皮功能。这货不仅能把输出电压纹波压得比…...
STM32开发中的C语言核心技巧与实战
1. STM32开发中的C语言核心技巧解析从事嵌入式开发十多年来,我深刻体会到C语言在STM32单片机开发中的核心地位。与通用计算机编程不同,嵌入式C语言需要直接操作硬件寄存器,对代码的精确性和效率要求极高。下面我将分享几个在STM32开发中最实用…...
DeepSeek-Coder-V2终极指南:如何免费打造你的专属AI编程助手
DeepSeek-Coder-V2终极指南:如何免费打造你的专属AI编程助手 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-V2 …...
新手零基础入门:通过快马生成burpsuite超详细安装图解教程
作为一名网络安全新手,第一次接触BurpSuite时确实容易被各种专业术语和复杂的安装步骤吓到。今天我就用最直白的方式,手把手带你完成BurpSuite的安装,让你轻松迈出Web安全测试的第一步。 什么是BurpSuite?为什么需要它࿱…...
