如何克隆Git仓库的子目录:稀疏检出

一、环境

Git 2.34.1

二、前言

一般来说,我们在克隆git仓库的时候,都是一整个仓库都克隆出来的。如果假设现在有一个很大的仓库,仓库里有多个子项目,而我们只想克隆其中一个子项目的时候,应该怎么做呢?

可以使用稀疏检出(sparse checkout)功能。

注意:稀疏检出仍然需要将整个仓库下载下来,并不会缩短你的克隆时间,它只是将其它不需要的文件夹隐藏了而已

三、步骤

在这里插入图片描述
假设我们的仓库目录结构如上,repo是仓库名字,project1project2是仓库里的两个子项目,而我们现在希望只检出apple文件夹,其它的文件夹隐藏掉。

1)首先,执行以下命令克隆仓库:

git clone --no-checkout https://gitee.com/repo.git

https://gitee.com/repo.git是git仓库的地址,根据实际情况替换。因为使用了--no-checkout参数,所以克隆出来的仓库是看不到任何文件的,我们还需要执行稀疏检出操作。

2)开启稀疏检出功能:

cd repo
git sparse-checkout init

3)将apple文件夹添加到检出目录里:

git sparse-checkout set "/project1/apple/"

set命令后面可以跟多个子目录路径,例如:

git sparse-checkout set "/project1/apple/" "/project2"

如果多次执行set命令,后面的命令会覆盖前面的命令,如果不想覆盖,只是仅新增目录,可以使用add命令。

其它相关命令:

# 查看当前的稀疏检出目录有哪些
git sparse-checkout list# 关闭稀疏检出功能
git sparse-checkout disable# 在手动修改了.git/info/sparse-checkout文件的内容后,使修改生效
git sparse-checkout reapply

关于sparse-checkout命令更多的信息,参阅这里

4)检出

git checkout

完毕!

四、参阅

  • https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository

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

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

相关文章

洛谷刷题 P1008 [NOIP1998 普及组] 三连击

题目链接:P1008 [NOIP1998 普及组] 三连击 思路 此题主要采取枚举的思想,但是直接暴力枚举会导致时间不够,因此我们先进行分析 因为要求三个三位数构成的比例是1:2:3,因此最小的那个数的百位只能在1、2、…

【Java后端】之 ThreadLocal 详解

想象一下,你有一个工具箱,里面放着各种工具。在多人共用这个工具箱的时候,很容易出现混乱,比如有人拿走了你的锤子,或者你找不到合适的螺丝刀。为了避免这种情况,最好的办法就是每个人都有自己独立的工具箱…

初识适配器模式

适配器模式 引入 生活中的例子:当我们使用手机充电时,充电器起到了转换器的作用,它将家用的220伏特电压转换成适合手机充电的5伏特电压。 适配器模式的三种类型 命名原则:适配器的命名应基于资源如何传递给适配器来进行。 类适配…

实验室信息化转型要注意哪些

在当今科技飞速发展的时代,实验室信息化转型已成为提升实验室效能和竞争力的关键举措。然而,这一转型过程并非一帆风顺,需要谨慎对待并注意以下几个重要方面。 一、明确需求与目标 在开启信息化转型之前,你必须深入了解实验室的…

第14篇:下一代网络与新兴技术

目录 引言 14.1 下一代网络(NGN)的定义与特点 14.2 IPv6协议的改进与未来应用 14.3 软件定义网络(SDN) 14.4 网络功能虚拟化(NFV) 14.5 量子通信网络 14.6 软件定义广域网(SD-WAN&#x…

xlsx xlsx-style-vite 实现前端根据element 表格导出excel且定制化样式 背景 列宽等

前言 先看下最终效果图吧,需要的可以参考我的实现方式 这是最终导出的表格文件 类似这种的,特定单元格需要额外标注,表头也有月份然后细分的,表格组件是这样的 注意 别使用xlsx-style 这个库,太多问题了,…

【C语言刷力扣】1768.交替合并字符串

题目: 解题思路: 将 word1 和 word2 元素依次添加至 ans 的后面。 时间复杂度: , n是word1的长度 m是word2的长度 空间复杂度: char* mergeAlternately(char* word1, char* word2) {int len1 strlen(word1);in…

供电电压和逻辑电压

供电电压和逻辑电压是电子电路中两个重要的电压概念,它们有不同的定义和应用。以下是它们之间的主要区别: 1. 定义 供电电压(Power Supply Voltage): 供电电压是用于给电路或设备提供电能的电压值。它是电源输出的电压…

【Linux】top命令查看CPU、内存使用率、解释

1. top 命令 top 是最常用的实时监控工具之一,可以显示 CPU 的总利用率以及各个进程的 CPU 使用情况。在Linux命令行直接输入top即可查看动态原始数据 top 在 top 命令的输出中,最上面的一行会显示 CPU 的使用情况: us(User&a…

写了十几年程序,今天才第一天知道什么是屎山代码

可以说,我确实没在工作中用过Javascript,因为我从未见过如此“厚颜无耻”的代码 我曾经也是学过2~3年,还是JQuery的年代,但应该确实没在实战中用过,否则我怎么会不记得写过这些屎山代码的??&…

图片怎么转文字?11种好用的方法!

如何快速将图片的文字提取出来,可以大量节省手打的时间,无论是截图,或者批量提取照片文字,都经常需要这个操作! 作为一名社畜,俺也经常用到各种图片转文字工具,今天通过测评12个主流的图片转文…

React Native 项目中使用 Expo Application Services (EAS) 进行多渠道打包

在 React Native 项目中使用 Expo Application Services (EAS) 进行多渠道打包,你可以利用 EAS Build 来构建你的应用。以下是一些关键步骤和配置: 安装 EAS CLI: 首先,你需要安装 EAS CLI 工具,以便在本地使用 EAS 的…

Linux例行性命令

1.单一执行的例行性工作at 单一执行的例行性工作:仅处理执行一次就结束了 at命令详解 ——命令格式: at [参数] [时间] -m 当任务完成之后,即使没有标准输出,将给用户发送邮件 -l atq的别名,可列出目前系…

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能(AI)技术飞速发展,AI算力需求呈现爆发式增长,导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇,从提供稳定的电力供应、优化高密度的部署,到数据安全的隐私保护&…

OpenVLA-首个开源视觉语言动作大模型

官网:https://openvla.github.io/ 现在大模型已经卷到了机器人领域。 在视觉语言模型(VLM)的基础上, 加入机器人的动作(Action) 这一模态, 视觉语言动作大模型(VLA)是目前大模型应用…

2024新手攻略:项目管理工具+PMP备考经验不容错过!

(一)热门工具大盘点 禅道是一款专注于软件开发项目管理的工具。它涵盖了项目管理的各个环节,包括需求管理、任务分配、缺陷跟踪等。禅道的优势在于其对软件开发流程的深入理解和支持,能够帮助开发团队更好地管理项目进度和质量。…

如何应对 Android 面试官 -> ANR 如何优化?线上 ANR 如何监控?

前言 本章主要围绕 ANR 如何监控以及优化; 基本概念 ANR(Android Not Responding) 是指应用程序未响应,Android 系统对于一些事件需要在一定的时间范围内完成,如果超过预订时间未能得到有效响应或者响应时间过长,都会造成 ANR。 …

91 VRRP负载局衡+主备切块 V2

实操四 负载均衡主备 VRRP(虚拟路由冗余协议)是一种网络协议,用于提高网络的可用性和冗余性。VRRP可以将多个路由设备组成一个虚拟路由器,当主路由设备故障时,自动切换到备用路由设备,从而实现高可用性。 …

Mamba学习笔记(2)—序列数据处理基础

文章目录 (1) RNN(Recurrent Neural Networks)基本原理代码定义 (2) SLTM (Long Short-Term Memory)基本原理代码定义 (3) GRU (Gated Recurrent Unit)基本原理代码定义 (4) Transformer(☆☆☆Attention Is All You Need☆☆☆)0…

OpenCloud7.9 安装docker

错误代码 failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try. http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/2/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 解决步骤: 1. 删除或禁用错…