Git只克隆远程仓库的某一个目录或文件

这篇具有很好参考价值的文章主要介绍了Git只克隆远程仓库的某一个目录或文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、研究背景

最近需要查看之前写的代码,需要从远程仓库拉取项目,但仓库项目太大直接克隆的话,下载时间比较慢,因此研究如何使用git只克隆需要的目录文件。下面是查看目录文件大小的命令:

# 查看.git文件的大小
du -sh .git
# 查看当前项目目录的大小
du -sh .
# 列出当前目录所有文件及大小
du .

下图是一个仓库的直接git克隆测试,发现项目.git文件大小为4.2M,整个项目目录大小为9.9M。

git如何只拉取指定目录的文件夹,Git,git

但是我们并不要远程仓库项目的所有文件,那应该怎么实现只克隆某一个目录或文件呢?

二、实践步骤

要实现只克隆某一个目录或文件,可以使用Git提供的方法,包括稀疏克隆和sparse-checkout操作。

2.1、稀疏克隆

过滤掉Blob文件,可以减少git克隆时的下载量。

# 过滤掉blob文件
git clone --filter=blob:none --sparse <your-git-url>
  • --filter=blob:none:指定克隆过程中不包含任何 blob 对象(文件内容),只克隆 commit 对象、tree 对象、tag对象。这可以大大减少克隆操作所需要的时间和存储空间,特别适用于大型仓库,减少不必要的数据传输和占用空间。

  • --sparse:该参数告诉 Git 使用稀疏(sparse)克隆的方式来克隆仓库。稀疏克隆是一种仅克隆部分文件和目录的方式,而不是将整个仓库都完整地克隆下来,有助于减少克隆所需的时间和空间。

该命令的含义是开启git稀疏克隆,并下载除了具体的文件内容Blob对象之外的其他对象文件,包括tree对象、commit对象、tag对象,以保证git历史记录和项目目录结构的完整性。这样可以实现快速、高效地克隆大型仓库,并节省存储空间。在过滤掉Blob文件后,只包含了一小部分文件,整个克隆下载的来的项目大小只有428k。但是并没有包含我们需要的目录或文件。

git如何只拉取指定目录的文件夹,Git,git

2.2、指定拉取(sparse-checkout)

使用git sparse-checkout命令来指定从git远程仓库拉取我们所需要的目录或文件到工作目录中,执行以下命令:

# 指定git拉取的目录文件
git sparse-checkout add <your-folder>
# 或者
git sparse-checkout set <your-folder>

添加front-end/seven-house-manage/src/views/dashboard之后,本地项目目录就会出现front-end/*相关文件,项目目录大小为576k,如下图所示。到这里基本就实现了git只拉取某一个目录或文件。

git如何只拉取指定目录的文件夹,Git,git

git如何只拉取指定目录的文件夹,Git,git

设置关注的目录,之前下载关注的front-end/seven-house-manage/src/views/dashboard就会被删掉,转到src目录下我们可以执行git相关操作并不会受到影响,包括打标签、新建分支、提交代码等。

# 设置关注的目录
git sparse-checkout set <your-folder>

git如何只拉取指定目录的文件夹,Git,git

2.3、文件对象

如果你想要查看文件对象类型或其他信息,可以使用以下命令:

# 查看特定文件的对象类型和哈希值
git cat-file -p HEAD:<file_path>

<file_path> 替换为你要查看的文件的路径。

# 查看特定文件所在目录的内容
git ls-tree HEAD <directory_path>

<directory_path> 替换为你要查看的目录的路径。

git如何只拉取指定目录的文件夹,Git,git

git如何只拉取指定目录的文件夹,Git,git

三、参考文献

【GitFAQ-如何在一个大型项目中只克隆一个目录】

Git - git-sparse-checkout Documentation (git-scm.com)文章来源地址https://www.toymoban.com/news/detail-845812.html

到了这里,关于Git只克隆远程仓库的某一个目录或文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git远程仓库的创建、克隆、推送和拉取

    在之前的文章中,讲解了Git的一些基本概念和常用的命令. 是时候干一件大事了-实现多人协助开发! 环境:Centos7云服务器 代码托管平台: Gitee Gitee是一个国内的基于Git的代码托管平台,类似于GitHub。它提供了源代码托管、版本控制、项目管理、协作开发等功能。 Gitee官网: https:

    2024年02月15日
    浏览(54)
  • 【Git】远程仓库的创建、SSH协议克隆、拉取、推送

    目录 一、创建远程仓库 二、HTTPS协议克隆仓库 三、SSH协议克隆仓库 四、向远程仓库推送 五、从远程仓库拉取 六、忽略特殊文件 七、配置命令别名 首先我们可以从GitHub或者Gitee中创建自己的个人仓库 工作台 - Gitee.com https://gitee.com/ 当我们的仓库创建好之后,我们可以在仓库

    2024年02月08日
    浏览(81)
  • Git 基本操作【本地仓库与远程仓库的推送、克隆和拉取】

    Git 是分布式版本控制系统(Distributed Version Control System,简称 DVCS),分为两种类型的仓库: 本地仓库和远程仓库 工作流程如下 1.从远程仓库中克隆或拉取代码到本地仓库(clone/pull) 2.从本地进行代码修改 3.在提交前先将代码提交到暂存区 4.提交到本地仓库。本地仓库中

    2024年02月07日
    浏览(77)
  • WSL2 git clone命令无法克隆远程仓库

    最近在往WSL2里拉取git仓库的时候,突然出现了这个问题,WSL2无法连接到git服务器,导致代码无法拉取下来,可能是因为我最近不小心修改了windows的防火墙设置,导致出现了这个问题。 在查阅了很多篇博客以后,终于找到一篇博客可以解决我这个问题,下面记录一下详细过程

    2024年01月18日
    浏览(40)
  • 在IDEA中使用Git 、远程仓库克隆工程到本地

    4.1 在IDEA中配置Git 安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。 选择File→Settings打开设置窗口,找到Version Control下的git选项: 选择git的安装目录后可以点击“Test”按钮测试是否正确配置

    2024年02月03日
    浏览(51)
  • git命令使用 将git仓库克隆到另一个仓库,并保留原来的提交记录

    君子拙于不知己,而信于知己。——司马迁   清屏:clear 查看当前面板的路径:pwd 查看当前面板的文件:ls 创建文件夹:mkdir 文件夹名 创建文件:touch 文件名 删除文件夹:rm -rf 文件夹名 删除文件:rm -f 文件名 移动文件/文件夹:mv 需移动文件/文件名 目标文件夹/(../上级)  

    2024年02月12日
    浏览(52)
  • Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】

    本文来为读者介绍一下分布式版本控制工具Git,可能你听说过Gitee/GitHub,里面都带有git的字样,那它们和Git之间有什么关联呢❓ Git又是何物,让我们一起走进本文的学习📖 Git(读音为/gɪt/)是一个 开源的分布式版本控制系统 ,可以有效、高速地处理从很小到非常大的项目

    2024年02月01日
    浏览(59)
  • 【Git】Github 上传文件到远程仓库时,经常发生网络错误,一个比较稳定的连接方法及我的示例

    在利用 git 传项目文件到远程仓库时,经常发生网络连接错误,例如: 再比如: 再比如: 这种类似的情况很多,每次都觉得不胜其扰,今天下午尝试上传五次,全都是以网络问题而失败,想着找到一种稳定上传的方式,来解决这个问题。 下面是我的最为顺利的一次上传流程

    2024年02月04日
    浏览(53)
  • Git管理神器SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)

    俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit,综合网上的一些文章分析和自己的日常开发实践心得个人比较推荐开发者使用SourceTree,因为SourceTree同时支持

    2024年02月03日
    浏览(251)
  • 使用Git将本地文件提交到远程仓库 使用Git将本地文件提交到远程仓库

    使用Git将本地文件提交到远程仓库 现在要将本地代码推到git远程仓库保存,可以提交和拉取操作 本地项目已经创建 git远程仓库已经建(github、gitee都行) 操作如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使

    2024年02月13日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包