当前位置: 首页 > news >正文

使用Git LFS管理大型文件

💓 博客主页:瑕疵的CSDN主页
📝 Gitee主页:瑕疵的gitee主页
⏩ 文章专栏:《热点资讯》

使用Git LFS管理大型文件

    • 引言
    • Git LFS 简介
      • 安装 Git LFS
        • 安装 Git
        • 安装 Git LFS
      • 配置 Git LFS
      • 初始化 Git 仓库
      • 指定需要使用 Git LFS 管理的文件类型
      • 添加文件到仓库
      • 提交更改
      • 推送到远程仓库
      • 克隆包含 Git LFS 文件的仓库
      • 更新现有的 Git 仓库
      • 查看 Git LFS 文件
      • 删除 Git LFS 文件
      • 高级配置
        • 设置 Git LFS 存储限制
        • 管理 Git LFS 存储
      • 实际案例
      • 总结

引言

在使用 Git 进行版本控制时,经常会遇到需要管理大型文件的情况,比如视频、音频、大型文档等。这些文件不仅占用大量的存储空间,还会导致 Git 仓库变得臃肿,影响克隆和拉取的速度。Git Large File Storage (LFS) 是一个 Git 扩展,专门用于管理大型文件。本文将详细介绍如何使用 Git LFS 来管理大型文件,提高 Git 仓库的性能。

Git LFS 简介

Git LFS 是一个开源的 Git 扩展,它允许你将大型文件存储在远程服务器上,而不是直接存储在 Git 仓库中。这样做的好处包括:

  • 节省存储空间:大型文件存储在远程服务器上,Git 仓库中只保留指向这些文件的指针。
  • 提高性能:克隆和拉取仓库时,不会下载所有的大型文件,只有在需要时才会下载。
  • 易于管理:可以轻松地跟踪和管理大型文件的历史版本。

安装 Git LFS

在使用 Git LFS 之前,需要先安装 Git 和 Git LFS。以下是安装步骤:

安装 Git
如果你还没有安装 Git,可以通过以下命令安装:

# Ubuntu
sudo apt-get update
sudo apt-get install git# macOS
brew install git# Windows
https://git-scm.com/download/win

安装 Git LFS
安装 Git LFS 的步骤如下:

# Ubuntu
sudo apt-get install git-lfs# macOS
brew install git-lfs# Windows
https://github.com/git-lfs/git-lfs/releases

安装完成后,运行以下命令初始化 Git LFS:

git lfs install

配置 Git LFS

在使用 Git LFS 之前,需要配置你的 Git 用户信息:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

初始化 Git 仓库

如果你还没有 Git 仓库,可以创建一个新的仓库:

git init

如果已经有 Git 仓库,可以直接进入仓库目录:

cd your-repo

指定需要使用 Git LFS 管理的文件类型

你可以指定哪些类型的文件需要使用 Git LFS 管理。例如,如果你想管理所有的 .mp4.psd 文件,可以运行以下命令:

git lfs track "*.mp4"
git lfs track "*.psd"

这将会在 .gitattributes 文件中添加相应的条目:

*.mp4 filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text

添加文件到仓库

将需要管理的大型文件添加到仓库中:

git add path/to/large-file.mp4

提交更改

提交更改到本地仓库:

git commit -m "Add large file using Git LFS"

推送到远程仓库

将更改推送到远程仓库:

git push origin main

克隆包含 Git LFS 文件的仓库

克隆包含 Git LFS 文件的仓库时,Git LFS 会自动下载所需的大型文件。运行以下命令克隆仓库:

git clone https://your-repo-url.git

更新现有的 Git 仓库

如果你已经有一个 Git 仓库,并且想将其中的大型文件迁移到 Git LFS,可以使用 git lfs migrate 命令。例如,将所有的 .mp4 文件迁移到 Git LFS:

git lfs migrate import --include="*.mp4"

查看 Git LFS 文件

你可以查看仓库中使用 Git LFS 管理的文件:

git lfs ls-files

删除 Git LFS 文件

如果你不再需要某个 Git LFS 文件,可以删除它:

git rm path/to/large-file.mp4
git commit -m "Remove large file"
git push origin main

高级配置

设置 Git LFS 存储限制
你可以设置 Git LFS 存储的限制,以避免意外超出存储配额。例如,设置存储限制为 10GB:

git config lfs.fetchinclude "*.mp4"
git config lfs.fetchexclude "*.psd"

管理 Git LFS 存储
你可以查看 Git LFS 存储的使用情况:

git lfs storage

实际案例

Git LFS 已经被广泛应用于各种场景,例如:

  • 媒体文件管理:管理视频、音频等媒体文件,提高 Git 仓库的性能。
  • 设计文件管理:管理 PSD、AI 等设计文件,方便团队协作。
  • 数据文件管理:管理大型数据文件,支持数据科学项目。

总结

通过本文,你已经学会了如何使用 Git LFS 来管理大型文件,提高 Git 仓库的性能。Git LFS 的高效管理和灵活配置使其成为处理大型文件的理想选择。
Git LFS 项目结构图

Git LFS 可以显著提高 Git 仓库的性能,特别是当需要管理大量大型文件时。
Git LFS 文件管理示意图

相关文章:

使用Git LFS管理大型文件

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Git LFS管理大型文件 引言 Git LFS 简介 安装 Git LFS 安装 Git 安装 Git LFS 配置 Git LFS 初始化 Git 仓库 指定需要使用…...

OpenAI终于正式上线搜索功能,搜索行业要变天了?

OpenAI 的 AI 搜索功能也将引发一场激烈的竞争。 各大科技公司都不会坐视不理,他们必然会纷纷加大对 AI 搜索技术的研发投入,试图在这个新兴的领域分一杯羹。这就像是一场没有硝烟的战争,各方势力都在暗中较劲,谁能笑到最后&…...

ssm《数据库系统原理》课程平台的设计与实现+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码看文章最下面 需要定制看文章最下面 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容…...

Java SpringBoot调用大模型AI构建AI应用

本文是一个用springboot 结合spring mvc 和spring ai alibaba 调用国产大模型通义千问的具体例子,按照这个做能够快速的搞定Java应用的调用。 然后就可以把这类应用泛化到所有的涉及到非结构化数据结构化的场景中。 Spring AI:简化Java中大模型调用的框…...

MySQL【二】

查询列 SELECT [ALL | DISTINCT ] * | 列名1[,……列名n] FROM 表名; 查询所有选课学生的学号,结果去除重复值 select distinct sno from sc; 选择行 查询满足条件的数据集 SELECT 字段列表 FROM 表名 WHERE 查询条件 查询不属于数学系或外国语系的学生全部信息 …...

SQL 常用语句

目录 我的测试环境 学习文档 进入数据库 基础通关测验 语句-- 查 展示数据库; 进入某个数据库; 展示表: 展示某个表 desc 查询整个表: 查询特定列: 范围查询 等于特定值 不等于 介于 特定字符查询 Li…...

前端埋点系统之如何用heatmap.js画网页热力图

Hello,大家好。在当今数字化时代,理解用户行为成为了企业成功的关键之一。随着互联网的发展,用户与网站、应用和产品的互动变得愈发复杂而多样化。在这样的背景下,埋点系统成为了洞察用户行为的重要工具之一。而其中的热力图分析&…...

CentOS 7系统下Redis Cluster集群一键部署脚本发布

引言 在大数据和云计算时代,Redis作为一款高性能的键值存储数据库,广泛应用于各种场景。然而,手动搭建Redis Cluster集群过程繁琐且容易出错。为了简化这一过程,本文提供了一个在CentOS 7系统下Redis Cluster集群的一键部署脚本,帮助开发者快速搭建Redis Cluster集群。 …...

自编以e为底的对数函数ln,性能接近标准库函数

算法描述: (1). 先做自变量x的范围检查,不能出现负数和0. 自己使用时,如果能通过其它途径保证自变量为正,那么可以省略这两个判断,提高速度。 (2). 根据IEEE 754浮点数的格式,,则 ln(x)kln(2)ln…...

Java中的日期时间

JDK8之前常用的日期时间类 System.currentTimeMillis():获取当前毫秒数(long类型) java.util.Date:通用Date类 import java.util.Date;Date date new Date(); // 空参构造器 System.out.println(date.getTime()); // 获取当前时…...

位置编码的表示

位置编码的表示位置编码的表示位置编码的表示位置编码的表示位置编码的表示...

0,国产FPGA(紫光同创)-新建PDS工程

国产FPGA正在蓬勃发展,紫光同创FPGA是大家竞赛时经常遇到的一款国产FPGA,本专栏从IP核开始一直到后续图像处理等。 开发板:盘古50K标准板 1,新建PDS工程 点击File(1),然后是New Projects&#…...

c++联合

结构体与联合体的区别 结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;缺点是struct内存空间的分配是粗放的,不管用不用,全分配。 而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”&#xff…...

Edit Data. Create Cell Editors. Validate User Input 编辑数据。创建 Cell Editors。验证用户输入

Goto Data Grid 数据网格 Edit Data. Create Cell Editors. Validate User Input 编辑数据。创建 Cell Editors。验证用户输入 Get and Modify Cell Values in Code 在代码中获取和修改单元格值 仅当 Grid 及其列已完全初始化时,才使用以下方法。如果需要在表单仍…...

Java 文件操作与IO流

文件 文件有两个概念,在广义来看就是操作系统上对硬件和软件资源抽象为文件。 在侠义上来看,就是我们保存在硬盘上的文件 在这里我们讨论的是狭义的文件,在外面的硬盘上的文件细分又可以分为二进制文件和文本文件,文本文件可以通…...

探索开源MiniMind项目:让大语言模型不再神秘(1)

简介: 声明:本人非此项目作者,仅仅是探索项目,分享项目。如有不妥,请联系我删除! 原项目地址:GitHub - jingyaogong/minimind: 「大模型」3小时完全从0训练26M的小参数GPT,个人显卡即…...

Android 大疆面经

Android 大疆面经 文章目录 Android 大疆面经一面 一面 自我介绍问项目聊了10分钟View的绘制流程MVC,MVP,MVVM的区别view和viewmodel的通信,除了databing还有其他的方式面向对象和面向过程的区别工厂模式和策略模式,哪些框架使用…...

【2024-10-31-2024-11-03】LeetCode刷题——python语法基础题

📝前言说明: ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,主要跟随B站作者灵茶山的视频进行学习,专栏中一篇文章为B站对应的一个视频 题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。 ●文章中的理…...

【算法】二分查找

目录 一、概念 二、思路 三、边界问题 一、概念 在一本书中查找某一页,我们总是倾向于先翻到整本书的中间,然后根据当前页数判断我们想要找的页在当前页的左半本中还是右半本中,接着继续翻到剩下半本书的中间...... 这就是二分查找思想在…...

第十五章 Vue工程化开发及Vue CLI脚手架

目录 一、引言 二、Vue CLI 基本介绍 三、安装Vue CLI 3.1. 安装npm和yarn 3.2. 安装Vue CLI 3.3. 查看 Vue 版本 四、创建启动工程 4.1. 创建项目架子 4.2. 启动工程 五、脚手架目录文件介绍 六、核心文件讲解 6.1. index.html 6.2. main.js 6.3. App.vue 一、…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...