TortoiseGit 入门指南17:使用子模块

news2024/12/23 3:04:21

如果你想在自己的代码仓库中嵌入其它仓库,这称为引入子模块(Submodule)。使用右键菜单TortoiseGit - Submodules Add 选项,弹出添加子模块对话框,可以将一个外部仓库嵌入到源代码树的专用子目录中。

在这里插入图片描述

  • Repository:外部仓库的路径,也可以为 URL
  • Path:保存外部仓库的路径,建议使用相对路径(相对仓库根目录,比如使用路径 .\common 会在仓库根目录下创建 common 文件夹)。
  • Branch:勾选后可以将外部仓储嵌入到指定分支,否则默认嵌入到当前分支。

点击 OK 按钮,TortoiseGit 会自动增加子模块并进行子模块克隆。

在这里插入图片描述

然后 common 文件夹内就包含有最新的文件了。

虽然 common 文件夹是工作目录中的一个子文件夹,但是 Git 还是会将它视作一个子模块,当你不在那个目录中时,Git 并不会跟踪它的内容,而是将它看作子模块仓库中的某个具体的提交。

如果一个仓库包含子模块,右键菜单会多出两个菜单项 Submodule UpdateSubmodule Sync

在这里插入图片描述

  • Submodule Update:初始化子模块、更新已注册的子模块

在这里插入图片描述

  • Initialize submodules(--init):初始化子模块的本地配置文件。

  • Recursive:当有嵌套的子模块时,递归更新这些子模块。

  • Remote tracking branch:从远端仓库更新子模块,本地子模块更新到与远端仓库一致。

  • Submodule Sync:当子模块的URL在上游改变时,使用这个菜单更新本地存储库。

当子模块更改后,在使用子模块的项目中,在主目录、在非子模块文件夹右击鼠标,pull 操作并不能将子模块修改的内容同步到项目中。在子模块文件夹右击鼠标,pull 操作可以将子模块修改的内容同步到项目中。在父目录右击鼠标,pull 操作并不能将子模块修改的内容同步到项目中。

使用 Git Submodule Update... 并且勾选 Initialize submodules(--init)RecursiveRemote tracking branch 时,可以将子模块修改的内容同步到项目。注意,如果不勾选 Remote tracking branch 选项,则不会与远端仓库同步,这样本地的信息可能是落后的,可能会把通过在子模块目录上右击鼠标,pull 操作获取的更新恢复成原来的旧版本。

子模块的使用模型

只使用子模块并不时地获取更新,而并不在你的检出中进行任何更改。此时只有更新子模块一种操作。

  • 方法1:右击子模块文件夹,选择Git Pull...,拉取最新的内容。然后提交一次,将子模块锁定为最新版本,并记录子模块更新。
  • 方法2:右击任意文件夹,选择Git Submodule Update...,将拉取内容并锁定为最新版本,然后提交一次,记录子模块更新。

导出的工程里面有子模块

一个工程里面有子模块。

通过 右键菜单 - Export... 导出程序。

即使导出的程序里面有 .gitmodules 文件,也不能通过 Git Submodule Update... 菜单更新子模块。

需要右键菜单 TortoiseGit - Submodules Add 选项,来新增子模块。

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

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

相关文章

Apache pulsar 技术系列-- 消息重推的几种方式

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案,支持多租户、低延时、读写分离、跨地域复制(GEO replication)、快速扩容、灵活容错等特性。在很多场景下,用户需要通过 MQ 实现消息的重新推送能力&#xff0c…

若依框架@DataScop不生效问题

主要原因没有在方法传参中method直接变成对象,而还是用String来进行接受,导致切面没有获取到参数 若依框架DataScop不生效问题

neo4j教程-Cypher操作

Cypher基础操作 Cypher是图形存储数据库Neo4j的查询语言,Cypher是通过模式匹配Neo4j数据库中的节点和关系,从而对数据库Neo4j中的节点和关系进行一系列的相关操作。 下面,通过一张表来介绍一下常用的Neo4j操作命令及相关说明,具…

产业大数据应用:洞察企业全维数据,提升企业监、管、服水平

​在数字经济时代,数据已经成为重要的生产要素,数字化改革风生水起,在新一代科技革命、产业革命的背景下,产业大数据服务应运而生,为区域产业发展主导部门提供了企业洞察、监测、评估工具。能够助力区域全面了解企业经…

打造交流利器:PHP留言板功能详解与实践

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,2023年6月csdn上海赛道top4。多年电商行业从业经验,对系统架构,数据分析处理等大规模应用场景有丰富经验。 🏆本文已收录于PHP专栏:PHP…

聚类算法概述

聚类算法简介 1.1 聚类算法在现实中的应用 用户画像,广告推荐,Data Segmentation,搜索引擎的流量推荐,恶意流量识别 基于位置信息的商业推送,新闻聚类,筛选排序 图像分割,降维,识别;离群点检测;信用卡异常消费;发掘相同功能的基因片段 1.2 聚类算法的概念 聚类…

Spring 源码解读

1、Spring 的结构组成 1.1、核心类介绍 Spring 中有两个最核心的类 1 DefaultListableBeanFactory XmlBeanFactory 继承自 DefaultListableBeanFactory,而DefaultListableBeanFactory 是整个 bean加载的核心部分,是 Spring 注册及加载 bean 的默认实现…

DAY13_会话技术-CookieSession综合案例

目录 1 会话跟踪技术的概述2 Cookie2.1 Cookie的基本使用2.1.1 概念2.1.2 Cookie的工作流程2.1.3 Cookie的基本使用2.1.3.1 发送Cookie2.1.3.2 获取Cookie 2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文 3 Session3.1 Session的基本使用…

/var/lock/subsys目录的作用

总的来说,系统关闭的过程(发出关闭信号,调用服务自身的进程)中会检查/var/lock/subsys下的文件,逐一关闭每个服务,如果某一运行的服务在/var/lock/subsys下没有相应的选项。在系统关闭的时候,会…

【SpringBoot】简介及传统的 Spring 框架:对比和分析

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 今天给大家带来的是 SpringBoot 的简介,SpringBoot 项目的创建,相较于 Spring 框架的优点: 1. 快速的集成框架 2.内置运行容器, 快速的部署项目 3. 摒弃…

数据接口有哪些?(数据接口有哪几种)

数据接口是指不同应用程序或系统之间交换数据的通信界面。在现代信息化社会中,数据接口扮演着极为重要的角色,它们使得不同平台之间能够相互连接和交流,从而实现数据共享和应用集成。 数据接口的种类繁多,常见的有以下几种&#…

OpenCvSharp (C# OpenCV) 二维码畸变矫正--基于透视变换(附源码)

导读 本文主要介绍如何使用OpenCvSharp中的透视变换来实现二维码的畸变矫正。 实现步骤 讲解实现步骤之前先看下效果(左边是原图,右边是矫正后的效果): 【1】需求分析 由于相机拍摄角度,导致二维码形状不是矩形,存在明显的畸变。我们希望将其矫正为正常的矩形或者正方形图…

mars3d绘制区域范围(面+边框)

1、图例(绿色面区域白色边框) 2、代码 1)、绘制区域ts文件 import { mapLayerCollection } from /hooks/cesium-map-init /*** 安全防護目標* param map*/ export const addSafetyProtection async (map) > {const coverDatas await m…

游戏服务器的帧率控制

固定Tick时间策略 固定Tick时间&#xff1a;顾名思义就是指程序每次心跳的时间都是等长的、固定的。如图中的“图A”&#xff0c;Tick1和Tick2的时间是相等的&#xff0c;如果实际执行的比上次执行时间长&#xff08;Run2 > Run1&#xff09;&#xff0c;则Sleep2 < Slee…

EventLog Analyzer:保障网络安全的强大日志审计利器

日志审计是现代网络安全中不可或缺的一环。随着信息技术的迅速发展&#xff0c;企业和组织面临着越来越多的网络安全威胁&#xff0c;如数据泄露、网络攻击和内部滥用等。而为了确保网络安全&#xff0c;日志审计成为了必要的措施。在众多日志审计工具中&#xff0c;EventLog A…

neo4j教程-安装部署

neo4j教程-安装部署 Neo4j的关键概念和特点 •Neo4j是一个开源的NoSQL图形存储数据库&#xff0c;可为应用程序提供支持ACID的后端。Neo4j的开发始于2003年&#xff0c;自2007年转变为开源图形数据库模型。程序员使用的是路由器和关系的灵活网络结构&#xff0c;而不是静态表…

个人博客系统[SpringBoot+SpringMVC+MyBais]

文章目录 &#x1f387; 前言1.项目目录介绍2.项目前准备2.1 使用到的第三方库2.1 配置文件&#xff08;application.properties&#xff09;2.2 数据库介绍 3.common目录工具类介绍3.1 AjaxResult类3.2 AppVariable类3.3 CaptchaUtils类3.4 PasswordUtils类3.5 UserSessionUti…

VSCode打开终端的方法

VScode打开终端的方法 第一种&#xff1a;快捷键 Ctrl ~ 第二种&#xff1a;选中某个文件&#xff0c;右键&#xff0c;点击“在集成终端中打开” 第三种&#xff1a;在VSCode的页面上方的选项&#xff0c;点击“终端”&#xff0c;再点击“新建终端” 打开后&#xff0c;…

事务,不只ACID

大家好&#xff0c;我是 方圆。一提到事务&#xff0c;最先让我想到的就是ACID和倒背如流的隔离级别。它确实和这些相关&#xff0c;但是在我读了《数据密集型应用系统设计》之后&#xff0c;我想把事务这个主题讲的不那么“传统”。本文的部分内容可能读起来会有些老生常谈的感…

【Vue】在el-table的el-table-column中,如何控制单行、单列、以及根据内容单独设置样式。例如:修改文字颜色、背景颜色

用cell-style表属性来实现。在官网中是这样表述这个属性的。 在el-table中用v-bind绑定此属性。&#xff08;v-bind的简写是&#xff1a;&#xff09; <el-table:data"options":cell-style"cell"><el-table-column prop"id" label"…