news 2026/4/23 11:29:27

【Git】全面认识Git lfs

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Git】全面认识Git lfs

【Git】全面认识Git lfs

文章目录

  • 【Git】全面认识Git lfs
    • 01 什么是`git lfs`?
    • 02 Git vs Git lfs
      • 2.1 git 场景
      • 2.2 git lfs 场景
    • 03 Git lfs实操
      • 3.1 下载和安装Git lfs
        • 3.1.1 下载
        • 3.1.2 安装
        • 3.1.3 验证安装是否成功
      • 3.2 配置Git Lfs
    • 04 总结

我们经常在使用hugging face上模型和数据集时候,如果要想模下载到本地,要使用git lfs方式下载。

那么与git有什么关系?什么是git lfs?

现在最流行的代码管理工具就是git, Git 是业界流行的分布式版本控制工具,仓库与远端仓库同样保存了全量的文件和变更历史,这样让代码协作变得简单和高效。随着科学数据分析和人工智能发展,发现我们代码有时候要和一些大文件放在一个工程里面进行管理.但是Git针对大型文件(例如图片、视频或其他二进制文件)的版本控制,可谓是心有余而力不足,主要有两点问题:

  • 效率变慢:不管实际上用户是否使用到这些大文件的历史,都需要把每一个文件的每一个版本下载到本地仓库。毫无疑问,增加用户等待的时间,好比下载一个电影,我们一般都要等待十几分钟以上。

  • 空间变大:一个Git仓库存放的大型的文件越多,Git仓库会以非常快的速率膨胀,占用更多的磁盘空间。

基于以上2点问题, Git工具显得捉襟见肘, 在一些游戏开发工程师设计工程师文档管理者中很难满足他们, 一方面,他们希望继续使用Git的版本控制和工作流能力,在另一方面Git仓库中大文件及其历史不断增多,导致工作效率越来越差。所以,针对上述的问题,Git LFS应运而生,是目前针对大文件场景下的主流的解决方案。

01 什么是git lfs?

Git LFS (Large File Storage)是一个开源的Git大文件版本控制的解决方案和工具集,工具自身是基于Golang进行实现,并在Github上开源。原理上是通过对Git客户端进行扩展的方式,从而集成并兼容了原生的Git客户端。Git LFS良好的设计,让用户感觉在对大文件处理过程中,与普通Git的使用方式上没有任何差别。

总之, Git LFS 是Git 的扩展,它可提供用于描述提交到存储库中的大型文件的数据。充分解决了Git在管理大文件的弊端。

02 Git vs Git lfs

2.1 git 场景


普通的git场景, 不论是针对小的代码文本文件、还是大的文件,如图片、视频,在相关变更从本地提交到远端仓库时,所有的相关文件资源都会完整的存储在git server。就图片中的例子而言,如果图片文件越来越多,改动频次越来越大,仓库的体积将极速膨胀起来。

2.2 git lfs 场景


Git LFS的场景: 如上图所示,我们可以针对jpg图片使用Git LFS的存储能力,在push过程中将其上传至大文件存储服务。同时,大文件对应的指针文件将连同其他的普通的代码文件推送到远端Git仓库中。也就是说git仓库只是存放大文件的指针,并没有存放真实的大文件, 大文件只是放在远端的大文件系统上。

03 Git lfs实操

3.1 下载和安装Git lfs

3.1.1 下载
  • Linux DebianRPM packages

    packagecloud.io/github/…

  • Mac:

    brewinstallgit-lfs
  • Windows:目前lfs已经集成在了Git for Windows中,直接下载和使用最新版本的Windows Git即可。

  • 直接下载二进制包:
    github.com/git-lfs/git-…

3.1.2 安装
  • 如果你选择使用二进制包下载后安装,直接执行解压后的./install.sh脚本即可,这个脚本会做两个事情
    1. $PATH中安装Git LFS的二进制可执行文件
    2. 执行git lfs install命令,让当前环境支持全局的LFS配置
3.1.3 验证安装是否成功
gitlfsinstall#Updated pre-push hook.#Git LFS initialized.# 出现以上两条日志,说明安装成功

3.2 配置Git Lfs

可以在已有的git仓库或者空仓库,输入以下命令,配置git lfs, 需要执行track命令建立追踪:

gitlfs track"*.csv"

友情提示: 使用lfs track命令时,"*.csv"的双引号非常重要,否则将影响pattern的文件匹配功能。track 命令实际上是修改了仓库中的.gitattributes文件,将该文件add添加到暂存区。

gitadd.gitattributes#diff命令查看文件相关变动gitdiff--cached

为了让"*.csv"的配置生效,需要将.gitattributes文件进行提交, 让Git LFS配置生效:

gitcommit -m"Add\"*.csv\"LFS config "

验证是否可以, 新建一个.csv文件进行测试:

gitaddtest.csv

由于test.csv后缀命中了.gitattributes中设置的"*.csv"的文件格式,所以将做为 LFS 文件处理。接下来,我们将dyrone.bigfile的变更提交并推送到远端:

gitcommit -m"add test.csv"gitpush

如果存在LFS文件需要上传,在推送过程中将会显示LFS上传进度。至此,这个仓库中.csv的文件已经成功使用LFS进行管理,而其他文件使用Git进行管理。类似以下上传日志:

Uploading LFS objects:0%(0/1),0B|0B/s,done

同样可以支持撤销继续跟踪某类文件,并将其从cache中清理:

gitlfs untrack"*.csv"gitrm--cached"*.csv"

还支持历史文件转换为LFS管理, 到时候大家有兴趣可以深入再学习。

04 总结

Git lfs为我们解决了大文件版本管理问题, 特别在LLM时代, 利用git lfs可以像管理代码那样简单地管理我们的模型和数据集。岂不美哉~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:45:05

【AAAI2026】阿里云人工智能平台PAI视频编辑算法论文入选

近期,阿里云人工智能平台 PAI 的视频编辑算法论文在 AAAI2026 上正式亮相发表(Zero-to-Hero: Empowering Video Appearance Transfer with Zero-Shot Initialization and Holistic Restoration)。AAAI 是人工智能领域最具影响力的国际顶级会议…

作者头像 李华
网站建设 2026/4/23 12:51:28

9-1Python魔术方法完全指南:从基础到高级应用

魔术方法(Magic Methods)是Python面向对象编程中极具特色的功能,它们以双下划线开头和结尾(如__init__),允许开发者自定义类的行为,使其能够与Python语言特性无缝集成。本文将深入解析Python中最…

作者头像 李华
网站建设 2026/4/22 15:32:35

转录因子研究套路(三)

在先前的推文中,小远发现大家对转录因子相关的文章比较感兴趣,因此猜测应该很多人都在做这方面的研究,为了更好的帮助大家开展转录因子的研究,本次推文主要是和大家一起来复盘一下转录因子的常规研究思路及方法,内容可…

作者头像 李华
网站建设 2026/4/23 16:42:43

Kubernetes HPA(Horizontal Pod Autoscaler)详解

本文由deepseek回答。当前大模型质量有一定瑕疵,不过可以作为思路,可以参考 HPA是Kubernetes的水平Pod自动伸缩器,它根据资源使用率或其他自定义指标自动增加或减少Pod的副本数量。 一、HPA的核心概念 1. 水平伸缩 vs 垂直伸缩 水平伸缩(HPA):增加/减少Pod数量 垂直伸…

作者头像 李华
网站建设 2026/4/18 14:59:56

【日记】拖延症玩了一整天游戏(1308 字)

正文 昨天在医院蹲了一整天,挂了 3 个科室(如果不算放射科的话),做了 2 个超声,1 个 CT。属于是把病攒到一起看了…… 好消息,肺结节消了一个。坏消息,消的是小的那个,6mm x 5mm 那个…

作者头像 李华
网站建设 2026/4/23 13:09:11

UUID的隐形成本:一个让数据库“慢下来”的陷阱

UUID的隐形成本:一个让数据库“慢下来”的陷阱 最近我们在性能优化中发现了一个隐蔽的问题:数据库的写入和查询性能在数据量增长后出现明显下降。经过层层排查,最终定位到一个令人意外的原因——我们大量使用的UUID作为主键。 本文将剖析UU…

作者头像 李华