git子模块--常见操作

news2025/5/27 16:50:25

克隆仓库

标准化克隆流程
  • 基本命令
    git clone <父仓库远程URL> [本地文件名]
    cd <本地仓库名>
    git submodule init   # 初始化子模块配置
    git submodule update # 拉取子模块内容
    
一次性完成克隆和初始化流程
  • 基本命令
    git clone --recurse-submodules <父仓库远程URL> [本地文件名]
    
其他克隆流程
  • 基本命令
    git clone <远程仓库URL> [本地文件名]
    cd <本地仓库名>
    git submodule update --init --recursive
    

添加子模块配置

标准化添加流程
  • 添加仓库命令
    git submodule add <子目录远程仓库URL> [子模块名]
    # 例:
    git submodule add $(cd blog && git remote get-url origin) blog # 将blog这个模块作为子模块添加到当前git仓库中;使用 git remote get-url <本地仓库名>
    
  • 成功添加后的表现
    • 生产或修改.gitmodules文件,若已有此文件,则直接写入新增的子模块配置,否则新建一个名为.gitmodules的文件并写入第一关配置
    • 提交时,子模块以特殊模式(160000)记录,表示其指向某个具体提交而非普通文件。

移除子模块配置

标准化写在流程
  • 命令行卸载子模块
    git submodule deinit <子模块的相对路径> # 在.git/config 和 .gitsubmodule中移除配置
    # 例:
    git submodule deinit "blog"
    
  • 删除子模块并暂存变更
    git rm <子模的相对块路径>
    
  • 清理残留文件:彻底删除子模块的Git缓存
    rm -rf .git/modules/<子模块名称>
    
  • 提交变更

修改子模块配置

更新子模块路径以及名称
  • 使用命令移动或重命名子模块目录
    git mv old/path new/path # 将旧的路由更名为新的路由
    
    执行完毕后.gitmodules中的路由配置信息会自动更新
    git config -f .gitmodules submodule.<submodule-neme>.path new/path # 如果没有自动更新可使用此命令更新,或手动编辑 .gitmodules 文件
    
  • 使用文件编辑器方式更新子模块名称
    vim .gitmodules # 使用任何编辑方式均可
    
    修改[submodule "<子模块名>"]中的配置
    [submodule "old-name"]  => [submodule "new-name"] # 将名称配置修改为新的名称(最好与路径字符串统一)
    path = <new/path>
    url = <URL保持不变>
    
  • 在其他地方使用最新的仓库
    git pull # 拉取最新内容,修改后的路径会以一个全新的文件夹的方式新增在这里
    rm -rf old/path # 移除掉以及被淘汰的旧路径
    git submodule update # 更新子模块内容,如果此命令无效可先输入 git submoduel init
    cd new/path
    git switch <目标分支> # 新克隆的子模块的分支处于游离状态,所以需呀切换到有效分支在做操作
    
更新子模块远程地址
  • 使用命令更新子模块路径
    git config -f .gitmodules submodule.<submodule-name>.url <new-url>
    
    自动更新.gitmodules文件中的呢日欧能够,或使用文本编辑系做如下修改
    [submodule "submodule-name"]
    path = <路径保持不变>
    url = <old-url> => url = <new-url> # 将URL配置修改为新的URL
    
  • 使用命令更新子模块
    git submodule update --remote
    
  • 在其他地方使用最新的仓库
    git pull # 拉取最新内容,修改后的路径会以一个全新的文件夹的方式新增在这里
    git submodule update # 更新子模块内容,如果此命令无效可先输入 git submoduel init
    
更新子模块内容,以及同步父模块
  • 从本地更新到远程
    cd path
    git add .
    git commit -m "<提交信息>"
    git pull [仓库名称] [目标分支] # 提交之前拉取一次最新版的远程仓库,防止提交冲突
    git push [仓库名称] [目标分支]
    cd <父仓库的根目录>
    git commit -am "更新子模块"
    git pull
    git push
    
  • 从远程更新到本地
    cd path
    git switch <分支名称>
    git pull [仓库名称] [目标分支]
    git submodule update --remote [--init] [--recursive] # 远程指令(必填)、初始化指令(选填)、递归指令(选填)
    

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

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

相关文章

数据被泄露了怎么办?

数据泄露是严重的网络安全事件&#xff0c;需立即采取行动以降低风险。以下是关键应对步骤&#xff1a; 1. 确认泄露范围 核实泄露内容&#xff1a;确定泄露的是密码、财务信息、身份证号还是其他敏感数据。 评估来源&#xff1a;检查是个人设备被入侵、某平台漏洞&#xff0c…

绩效管理缺乏数据支持,如何提高客观性?

要提高绩效管理的客观性&#xff0c;应从建立科学的指标体系、加强数据采集手段、引入自动化绩效工具、强化过程记录机制、定期评估与反馈优化五大方面着手。其中&#xff0c;建立科学的指标体系是关键基础。没有数据支撑的绩效体系&#xff0c;往往容易陷入主观打分、个人偏见…

unity控制相机围绕物体旋转移动

记录一下控制相机围绕物体旋转与移动的脚本&#xff0c;相机操作思路分为两块&#xff0c;一部分为旋转&#xff0c;一部分为移动&#xff0c;旋转是根据当前center中心点的坐标&#xff0c;根据距离设置与默认的旋转进行位置移动&#xff0c;移动是根据相机的左右和前后进行计…

线性代数:AI大模型的数学基石

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

简单血条于小怪攻击模板

创建一个2d正方形&#xff08;9-Sliced&#xff09;命名为Player&#xff0c;在Player下面新建一个画布&#xff08;Canvas&#xff09;命名为PlayerHealthUI&#xff0c;在画布下面新建一个滑动条&#xff08;Slider&#xff09;命名为HealthBar 把PlayerHealthUI脚本挂载到Pl…

代码随想录算法训练营第四十六四十七天

卡码网题目: 110. 字符串接龙105. 有向图的完全联通106. 岛屿的周长107. 寻找存在的路径 其他: 今日总结 往期打卡 110. 字符串接龙 跳转: 110. 字符串接龙 学习: 代码随想录公开讲解 问题: 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序…

华硕FL8000U加装16G+32G=48G内存条

华硕FL8000U加装16G32G48G内存条 一、华硕FL8000U加装内存条endl 一、华硕FL8000U加装内存条 相关视频链接: https://www.bilibili.com/video/BV1gw4dePED8/ endl

勇闯Chromium—— Chromium的多进程架构

问题 构建一个永不崩溃或挂起的渲染引擎几乎是不可能的,构建一个绝对安全的渲染引擎也几乎是不可能的。 从某种程度上来说,2006 年左右的网络浏览器状态与过去单用户、协作式多任务操作系统的状况类似。正如在这样的操作系统中,一个行为不端的应用程序可能导致整个系统崩溃…

软件质量保证与测试实验

课程  软件质量保证与测试 目的&#xff1a;练习软件测试中白盒测试方法 内容&#xff1a; 测试如下程序段&#xff1a; #include <stdio.h>int main() {int i 1, n1 0, n2 0;float sum 0.0;float average;float score[100];printf("请输入分…

历年华东师范大学保研上机真题

2025华东师范大学保研上机真题 2024华东师范大学保研上机真题 2023华东师范大学保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 简单一位数代数式计算 题目描述 给一个小学生都会算的1位数与1位数运算的代数式&#xff0c;请你求出这个表…

在机器学习中,L2正则化为什么能够缓过拟合?为何正则化等机制能够使一个“过度拟合训练集”的模型展现出更优的泛化性能?正则化

在现代机器学习的发展历程中&#xff0c;过拟合&#xff08;Overfitting&#xff09;始终是亟需克服的重要挑战。其表现如同在训练数据上构建过度复杂的映射函数&#xff0c;虽能实现近乎完美的拟合&#xff0c;但其泛化能力却显著受限&#xff0c;导致模型在测试集或实际应用中…

k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件 文章目录 k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter简介二、kubernetes-event-exporter实战部署1. 创建Namespace&a…

C++性能相关的部分内容

C性能相关的部分内容 与底层硬件紧密结合 大端存储和小端存储&#xff08;硬件概念&#xff09; C在不同硬件上运行的结果可能不同 比如&#xff1a;输入01234567&#xff0c;对于大端存储的硬件会先在较大地址上先进行存储&#xff0c;而对于小端存储的硬件会先在较小地址上…

AI进行提问、改写、生图、联网搜索资料,嘎嘎方便!

极客侧边栏-AI板块 目前插件内已接入DeepSeek-R1满血版、Qwen3满血版 、豆包/智谱最新发布的推理模型以及各种顶尖AI大模型&#xff0c;并且目前全都可以免费不限次数使用&#xff0c;秒回不卡顿&#xff0c;联网效果超好&#xff01; 相比于市面上很多AI产品&#xff0c;极客…

GStreamer开发笔记(四):ubuntu搭建GStreamer基础开发环境以及基础Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/147714800 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、O…

2021年认证杯SPSSPRO杯数学建模A题(第二阶段)医学图像的配准全过程文档及程序

2021年认证杯SPSSPRO杯数学建模 A题 医学图像的配准 原题再现&#xff1a; 图像的配准是图像处理领域中的一个典型问题和技术难点&#xff0c;其目的在于比较或融合同一对象在不同条件下获取的图像。例如为了更好地综合多种信息来辨识不同组织或病变&#xff0c;医生可能使用…

CV中常用Backbone-3:Clip/SAM原理以及代码操作

前面已经介绍了简单的视觉编码器&#xff0c;这里主要介绍多模态中使用比较多的两种backbone&#xff1a;1、Clip&#xff1b;2、SAM。对于这两个backbone简单介绍基本原理&#xff0c;主要是讨论使用这个backbone。 1、CV中常用Backbone-2&#xff1a;ConvNeXt模型详解 2、CV中…

RPC 协议详解、案例分析与应用场景

一、RPC 协议原理详解 RPC 协议的核心目标是让开发者像调用本地函数一样调用远程服务&#xff0c;其实现过程涉及多个关键组件与流程。 &#xff08;一&#xff09;核心组件 客户端&#xff08;Client&#xff09;&#xff1a;发起远程过程调用的一方&#xff0c;它并不关心调…

dify-plugin-daemon的.env配置文件

源码位置&#xff1a;dify-plugin-daemon\.env 本文使用dify-plugin-daemon v0.1.0版本&#xff0c;主要总结了dify-plugin-daemon\.env配置文件。为了本地调试方便&#xff0c;采用本地运行时环境WSL2Ubuntu22.04方式运行dify-plugin-daemon服务。 一.服务器基本配置 服务器…

(九)PMSM驱动控制学习---无感控制之高阶滑膜观测器

在之前的文章中&#xff0c;我们介绍了永磁同步电机无感控制中的滑模观测器&#xff0c;但是同时我们也认识到了他的缺点&#xff1a;因符号函数带来的高频切换分量&#xff0c;使用低通滤波器引发相位延迟&#xff1b;在本篇文章&#xff0c;我们将会介绍高阶滑模观测器的无感…