使用git-lfs管理大文件

news2025/3/31 3:50:17

当我们使用git管理文件版本的时候,经常会有一些比较大的文件,比如一些模型文件,或者备份的文档资料等,这些文件属于如果太大,就会给git的管理带来困难。

所以,对于这种大文件,一般我们就会采用lfs工具,来单独管理这种文件。

使用lfs管理文件之后,进行推送的时候,大文件会被替换成一个引用地址,拉取的时候,又会自动地替换回来。

安装lfs

lfs没有跟git一起,需要单独安装。

在Fedora等系统里,可以直接通过

dnf install git-lfs

安装。

安装的最后,会看到输出:

>>> Scriptlet 输出: 
>>> Git LFS initialized.                  
>>>                                         
完成!

表示初始化成功。之后就可以使用git lfs命令了。

如果是Ubuntu等系统,则是

apt install git-lfs

跟踪大文件

在项目源代码里,需要先建立对大文件的跟踪,之后才能加入大文件,进行管理。

建立对大文件的跟踪的命令是track。

如:

git lfs track *.mp4

执行之后,我们会看到项目根目录下面,多了一个.gitattributes文件,这就是管理大文件的配置文件。

之后再加入的.mp4结尾的文件,将自动进入lfs的管理。

如:

git add a.mp4

提交历史中的大文件

有的时候,当我们想使用lfs的时候,大文件已经在git里提交过了。

这时候就需要使用lfs的migrate命令来进行迁移,之后再强行推送到远端仓库。

如:

# 迁移所有历史中的指定文件(例如*.mp4和*.zip)
git lfs migrate import --include="*.mp4,*.zip" --everything

# 检查迁移后的历史是否正确
git log --stat

# 强制推送所有分支到远程仓库
git push origin --force --all
# 强制推送所有标签到远程仓库
git push origin --force --tags

其中,

  • --include 参数指定要迁移的文件模式,支持通配符。
  • --everything 表示处理所有分支和标签的历史。

通过以上步骤,历史提交中的大文件将被替换为LFS指针,并纳入LFS管理。

.gitattributes文件的-text

在 .gitattributes 文件中,-text 是一个 Git 属性设置,用于明确禁止 Git 对特定文件进行换行符(line endings)的自动转换。

如:

*.png -text
*.zip -text
*.exe -text

注:这里的语法有点儿令人费解。text明明表示文本,为什么使用-text却是让lfs按照二进制的方法管理文件呢?其实,这里的语法是一个-,再加上text,即减去text属性的意思。

所以,实际上这个text有三种使用方式:

  • text:允许 Git 自动转换换行符(例如 *.sh text)。
  • text=auto:让 Git 自动判断是否为文本文件(默认行为)。
  • -text:强制禁用换行符转换,即使文件看起来像文本。

强制拉取与推送

当推送或拉取仓库时,Git LFS 会自动下载真实文件,无需手动操作。

但是,也有偶尔出错的情况,比如网络问题,或者其它错误使用,导致了拉取之后,本地的大文件仅仅是一个文件指针(文件很小,里面只是一个路径)。

这时候,就需要手动执行lfs pull命令:

git lfs pull

再比如出现大文件推送失败的时候,也可以使用lfs push命令:

git lfs push

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

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

相关文章

Axios企业级封装实战:从拦截器到安全策略!!!

🚀 Axios企业级封装实战:从拦截器到安全策略 🔧 核心代码解析 // 创建Axios实例 const service axios.create({baseURL: api, // 🌐 全局API前缀timeout: 0, // ⏳ 永不超时(慎用!)withCrede…

Zerotier虚拟局域网在树莓派的应用和Syncthing配合Zerotier实现端到端文件同步

一、Zerotier的部署 1、官网注册账号 https://my.zerotier.com/i 2、选择linux系统,执行安装Zerotier curl -s https://install.zerotier.com | sudo bash3、将树莓派网络加入Zerotier zerotier-cli join DB62228FEDF6CE55DB62228FEDF6CE55 为你的Zerotier IP 需…

51c嵌入式~三极管~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12208603 一、PNP与NPN两种三极管使用方法 分享这篇文章总结下关于NPN和PNP两种型号三极管的使用和连接方法。 在单片机应用电路中三极管主要的作用就是开关作用。 PNP与NPN两种三极管使用方法 上图中,横向左…

SQL中累计求和与滑动求和函数sum() over()的用法

[TOC](SQL中累计求和与滑动求和函数sum() over()的用法) 一、窗口函数功能简介 sum(c) over(partition by a order by b) 按照一定规则汇总c的值,具体规则为以a分组,每组内按照b进行排序,汇总第一行至当前行的c的加和值。 sum()&#xff1a…

【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)

大家好,我是全栈小5,欢迎来到《小5讲堂》。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言认识雪花ID…

FPGA——分秒计数器设计(DE2-115开发板)

一、项目创建 1.创建工程 点击File->New Project Wizard...或者直接在页面处点击 在第一行选择文件存放地点,第二行为项目名称,第三行为顶级设计实体名称 (下面的步骤可以暂时不做直接点Finish,因为是先写代码先把它跑出来暂…

雅思练习总结(九)

雅思练习总结(九) 本文章是雅思练习总结(九),总结了文章《BAKELITE》,内容包括原文精翻,文章脉络总结,单词扩展学习3个部分 1 文章原文及翻译 BAKELITE 翻译:贝克莱特…

windows USB 了解

GUID GUID 是一个 128 位的数字,在全球范围内是独一无二的,常被用于标识软件组件、设备接口等,以保证在不同系统和环境中能唯一识别特定对象。 DEFINE_GUID(GUID_DEVINTERFACE_USCUSTOMKEYS, 0x12345678, 0x1234, 0x5678, 0x12, 0x12, 0x23…

光谱相机的光谱信息获取

光谱信息的获取方式主要依赖于不同分光技术和成像方法,将入射光分解为不同波长并记录其强度。以下是常见的光谱信息获取技术分类及原理: ‌1. 分光技术(物理分解波长)‌ ‌(1) 滤光片法‌ ‌原理‌:使用固定或可调滤…

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

作者:牧思 背景 在云原生时代的今天,Golang 编程语言越来越成为开发者们的首选,而对于 Golang 开发者来说,最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了,Gin 框架作为 Golang 编程语言官方的推荐框架 [ 2] &…

构建大语言模型应用:简介(第一部分)

本专栏聚焦大语言模型(LLM)相关内容的解析,通过检索增强生成(RAG)应用的视角来进行。 本系列文章 简介(本文)数据准备句子转换器向量数据库搜索与检索大语言模型开源检索增强生成评估大语言模…

PEmicro Multilink FX调试踩坑

文章目录 1.背景2 功能说明2.1 实时数据查看功能2.1 电压观测2.2 SWO功能 3 设置与支持 1.背景 既然使用了NXP的芯片,笔者就想使用一下它的专用调试器,这里先说一下,笔者是从朋友那里借了一个调试器,型号为PEmicro Multilink FX …

主流大模型采用的架构、注意力机制、位置编码等汇总表

记录下主流大模型的一些核心知识点,包括: 架构注意力机制位置编码归一化激活函数模型参数 表中的一些模型已经是很久之前的了,比如表中并未收入 DeepSeek V3 中使用的MLA的注意力机制。先占个位,后续如果有更新的汇总表再来更…

SpringBoot学习笔记3.27

目录 实战篇第二课 1.注册参数的校验: 学习过程中遇到的问题: 1.什么是正则表达式 2.怎么自定义异常? 1. 创建全局异常处理类 2. 定义响应对象 3. 使用 ExceptionHandler 4. 设置响应状态码 5. 返回统一响应 6. 测试全局异常处理 …

2025NCTF--Web

文章目录 Websqlmap-masterez_dashez_dash_revenge Web sqlmap-master 源码 from fastapi import FastAPI, Request from fastapi.responses import FileResponse, StreamingResponse import subprocessapp FastAPI()app.get("/") async def index():return File…

如何破解软件自动化测试框架的维护难题

破解软件自动化测试框架的维护难题应从优化测试用例设计、加强脚本的模块化与复用性、提高自动化测试工具的选择与使用效率等方面入手。其中,加强脚本的模块化与复用性尤为关键,通过提高脚本的模块化程度,可以显著降低后续维护成本&#xff0…

外星人入侵(python设计小游戏)

这个游戏简而言之就是操作一个飞机对前方的飞船进行射击,和一款很久之前的游戏很像,这里是超级低配版那个游戏,先来看看效果图: 由于设计的是全屏的,所以电脑不能截图。。。。 下面的就是你操控的飞船,上面…

iOS rootless无根越狱检测方案

不同于安卓的开源生态,iOS一直秉承着安全性更高的闭源生态,系统中的硬件、软件和服务会经过严格审核和测试,来保障安全性与稳定性。 据FairGurd观察,虽然iOS系统具备一定的安全性,但并非没有漏洞,如市面上…

LLM 优化技术(1)——Scaled-Dot-Product-Attention(SDPA)

在 Transformer 中抛弃了传统的 CNN 和 RNN,整个网络结构完全由Scaled Dot Product Attention 和Feed Forward Neural Network组成。一个基于 Transformer 的可训练的神经网络可以通过堆叠 Transformer 的形式进行搭建,Attention is All You Need论文中通…

基于音频驱动的CATIA动态曲面生成技术解析

一、技术背景与创新价值 在工业设计领域,参数化建模与动态仿真的结合一直是研究热点。本文提出的音频驱动建模技术突破了传统参数调整方式,实现了音乐节奏与三维曲面的实时动态交互。该技术可广泛应用于以下场景: ​艺术化产品设计&#xf…