【Git】全面认识Git lfs
【Git】全面认识Git lfs文章目录【Git】全面认识Git lfs01 什么是git lfs?02 Git vs Git lfs2.1 git 场景2.2 git lfs 场景03 Git lfs实操3.1 下载和安装Git lfs3.1.1 下载3.1.2 安装3.1.3 验证安装是否成功3.2 配置Git Lfs04 总结我们经常在使用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 lfs2.1 git 场景普通的git场景, 不论是针对小的代码文本文件、还是大的文件,如图片、视频在相关变更从本地提交到远端仓库时所有的相关文件资源都会完整的存储在git server。就图片中的例子而言如果图片文件越来越多改动频次越来越大仓库的体积将极速膨胀起来。2.2 git lfs 场景Git LFS的场景: 如上图所示我们可以针对jpg图片使用Git LFS的存储能力在push过程中将其上传至大文件存储服务。同时大文件对应的指针文件将连同其他的普通的代码文件推送到远端Git仓库中。也就是说git仓库只是存放大文件的指针,并没有存放真实的大文件, 大文件只是放在远端的大文件系统上。03 Git lfs实操3.1 下载和安装Git lfs3.1.1 下载Linux Debian和RPM packagespackagecloud.io/github/…Mac:brewinstallgit-lfsWindows:目前lfs已经集成在了Git for Windows中直接下载和使用最新版本的Windows Git即可。直接下载二进制包github.com/git-lfs/git-…3.1.2 安装如果你选择使用二进制包下载后安装直接执行解压后的./install.sh脚本即可这个脚本会做两个事情在$PATH中安装Git LFS的二进制可执行文件执行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 -mAdd\*.csv\LFS config 验证是否可以, 新建一个.csv文件进行测试gitaddtest.csv由于test.csv后缀命中了.gitattributes中设置的*.csv的文件格式所以将做为 LFS 文件处理。接下来我们将dyrone.bigfile的变更提交并推送到远端gitcommit -madd test.csvgitpush如果存在LFS文件需要上传在推送过程中将会显示LFS上传进度。至此这个仓库中.csv的文件已经成功使用LFS进行管理而其他文件使用Git进行管理。类似以下上传日志Uploading LFS objects:0%(0/1),0B|0B/s,done同样可以支持撤销继续跟踪某类文件并将其从cache中清理gitlfs untrack*.csvgitrm--cached*.csv还支持历史文件转换为LFS管理 到时候大家有兴趣可以深入再学习。04 总结Git lfs为我们解决了大文件版本管理问题, 特别在LLM时代, 利用git lfs可以像管理代码那样简单地管理我们的模型和数据集。岂不美哉~

相关新闻

Old ATX电源电路图(网络收集)

Old ATX电源电路图(网络收集)

TL494/KB7500芯片 SG6105 KA3511 B2003 DR-C2002 LPG-899 UC3842, 3843, 3844, 3845 and other

2026/5/17 3:41:17 阅读更多 →
B2B营销终极指南:定义认知、策略落地与趋势前瞻

B2B营销终极指南:定义认知、策略落地与趋势前瞻

如果你想了解B2B营销,了解其策略以及如何在当今环境中取得成功,你来对地方了。让我们深入探讨这个话题,揭示最有效的现代B2B营销策略中的每一个要素。 什么是B2B营销? 顾名思义,企业对企业营销指的是向其他企业和组织推…

2026/7/5 23:13:30 阅读更多 →
agentscope循环对话 这个msg是在循环外面的

agentscope循环对话 这个msg是在循环外面的

这个msg是在循环外面的 msg Nonewhile True:msg await agent(msg)msg await user(msg)if msg.get_text_content() "exit":break agentscope-ai/agentscope: AgentScope: Agent-Oriented Programming for Building LLM Applications input版本: fro…

2026/7/5 15:27:14 阅读更多 →

最新新闻

AI 转型任务契约:把创始人的起步试点写成可验收 artifact

AI 转型任务契约:把创始人的起步试点写成可验收 artifact

AI 转型任务契约:把创始人的起步试点写成可验收 artifact 企业内部做 AI 试点,最容易出现的工程问题不是“没有模型”,而是“没有契约”。工具已经接入,群里也有人试用,但项目文档里找不到输入来源、输出对象、审核责任…

2026/7/6 13:20:07 阅读更多 →
小程序开发必知:四大法律合规领域与全周期实操指南

小程序开发必知:四大法律合规领域与全周期实操指南

1. 项目概述:为什么小程序开发者必须懂法?干了这么多年互联网产品,从PC网站做到移动App,再到如今遍地开花的小程序,我最大的感触就是:技术实现的门槛在降低,但合规运营的门槛在急剧升高。尤其是…

2026/7/6 13:18:04 阅读更多 →
图像分类落地:预处理管道比模型选型先出问题

图像分类落地:预处理管道比模型选型先出问题

图像分类落地:预处理管道比模型选型先出问题 一、你的 ResNet 在 ImageNet 上 96%,上自己的数据直接掉到 72%:谁在作怪? 这是图像分类落地的经典翻车剧本:你选了 SOTA 模型架构(EfficientNet/ConvNeXt/ViT&…

2026/7/6 13:16:02 阅读更多 →
为什么传统视频孪生存在ID漂移 + CameraGraph™拓扑图推理底层完整解法

为什么传统视频孪生存在ID漂移 + CameraGraph™拓扑图推理底层完整解法

为什么传统视频孪生存在ID漂移 CameraGraph™拓扑图推理底层完整解法研发主体:镜像视界浙江科技有限公司 底层依赖:SpaceOS™四维时空底座、Pixel2Geo™像素地理映射、SilentLoc™纯视觉无感定位联动 资质背书:国家十四五时空大数据重点课题…

2026/7/6 13:16:02 阅读更多 →
Agent 记忆长期化:从短期上下文到持久知识库的架构设计

Agent 记忆长期化:从短期上下文到持久知识库的架构设计

Agent 的记忆能力决定了它能否“越用越聪明”。没有记忆的 Agent 每次交互都是从零开始,无法记住用户偏好、历史任务和关键事实。长期记忆系统让 Agent 能够跨越会话、跨越任务,持续积累知识,从而提供更个性化、更连贯的服务。本文将探讨 Age…

2026/7/6 13:16:02 阅读更多 →
西门子PLC程序模板:气缸功能块 FB_AirCylinder 实战拆解

西门子PLC程序模板:气缸功能块 FB_AirCylinder 实战拆解

西门子PLC程序模板:气缸功能块 FB_AirCylinder 实战拆解邓工 2026-07-04 #西门子PLC #S7-1500 #FB_AirCylinder #气缸功能块 #TIA Portal所有气缸统一调用 FB_AirCylinder(FB6020,归属 03Valve 功能段)。标准化封装优点&#xf…

2026/7/6 13:14:00 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻