当前位置: 首页 > 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 一、…...

从零开始的云计算生活——第十四天,困难重重,安全管理。

一故事背景 在前面的基本无操作内容后,来到了大头内容,安全管理!其中的防火墙相关的内容更是重中之重,要好好掌握,熟练运用。 二SELinux安全上下文 1SELinux 简介 a. SELinux(Security-Enhanced Linux&…...

Spark-Core Project

RDD转换算子总结 RDD转换算子分为Value类型、双Value类型和Key - Value类型。 1、Value类型 map:对数据逐条映射转换,可改变数据类型或值。如 dataRDD.map(num > num * 2 运行结果: 2)mapPartitions:以分区为单位处…...

131. 分割回文串-两种回溯思路

我们可以将字符串分割成若干回文子串,返回所有可能的方案。如果将问题分解,可以表示为分割长度为n-1的子字符串,这与原问题性质相同,因此可以采用递归方法解决。 为什么回溯与递归存在联系?在解决这个问题时&#xff0…...

Flutter GridView网格组件

目录 常用属性 GridView使用配置 GridView.count使用 GridView.extent使用 GridView.count Container 实现列表 GridView.extent Container 实现列表 GridView.builder使用 GridView网格布局在实际项目中用的也是非常多的,当我们想让可以滚动的元素使用矩阵…...

lesson04-简单回归案例实战(理论+代码)

理解线性回归及梯度下降优化 引言 在机器学习的基础课程中,我们经常遇到的一个重要概念就是线性回归。今天,我们将深入探讨这一主题,并通过具体的例子来了解如何利用梯度下降方法对模型进行优化。 线性回归简介 线性回归是一种统计方法&a…...

Rust 学习笔记:自定义构建和发布配置

Rust 学习笔记:自定义构建和发布配置 Rust 学习笔记:自定义构建和发布配置发布配置文件自定义 profile 的选项 Rust 学习笔记:自定义构建和发布配置 发布配置文件 在 Rust 中,发布配置文件是预定义的和可定制的概要文件&#xf…...

人工智能浪潮下,制造企业如何借力DeepSeek实现数字化转型?

一、DeepSeek技术概述 DeepSeek,凭借其强大的深度学习和自然语言处理能力,能够理解复杂问题并提供精准解决方案。它不仅能够作为学习、工作、生活的助手,满足用户在不同场景下的需求,更能在制造业中发挥重要作用。通过自然语言交…...

函数栈帧深度解析:从寄存器操作看函数调用机制

文章目录 一、程序运行的 "舞台":内存栈区与核心寄存器二、寄存器在函数调用中的核心作用​三、函数调用全流程解析:以 main 调用 func 为例阶段 1:main 函数栈帧初始化**阶段 2:参数压栈(右→左顺序&#x…...

QtWidgets,QtCore,QtGui

目录 三者的关系示例代码主要功能模块QtCore**一、核心功能与常用类****1. 信号与槽机制(Signals and Slots)****2. 事件处理(Event Handling)****3. 定时器(Timers)****4. 线程(Threading)****5. 文件与目录操作****6. 属性系统(Property System)****二、高级特性**…...

nacos Sentinel zipkin docker运行

服务注册发现 分布配置中⼼nacos dockerdocker pull nacos/nacos-server:1.3.2docker run -d --name nacos-server -p 8848:8848 -e MODEstandalone nacos/nacos-server:1.3.2访问 http://localhost:8848/nacos 服务限流降级:Sentinel docker docker pul…...