当前位置:首页 > 科技  > 软件

深入了解Git LFS:高效管理大型文件的利器

来源: 责编: 时间:2023-12-09 15:22:20 404观看
导读今天在使用CodeUp上传代码时,我为项目添加了一个大小超过300MB的文件。在进行push操作时,系统提示我“推送失败,以下文件大小超过单文件200MB的系统限额,大文件请使用Git-LFS管理”。于是我开始了解Git LFS。对于需要处理

今天在使用CodeUp上传代码时,我为项目添加了一个大小超过300MB的文件。在进行push操作时,系统提示我“推送失败,以下文件大小超过单文件200MB的系统限额,大文件请使用Git-LFS管理”。于是我开始了解Git LFS。对于需要处理大型二进制文件的项目而言,Git的性能可能成为一个瓶颈。为了解决这个问题,Git引入了Git LFS(Large File Storage)——专门用于管理大型文件的扩展。在本文中,我们将深入探讨Git LFS的原理、使用方法以及它为项目带来的优势。roW28资讯网——每日最新资讯28at.com

Git LFS是什么?

Git LFS官网地址:https://git-lfs.com/roW28资讯网——每日最新资讯28at.com

Git 是业界流行的分布式版本控制工具,本地仓库与远端仓库同样保存了全量的文件和变更历史,这样让代码协作变得简单和高效。但也正因为如此,Git针对大型文件(例如图片、视频或其他二进制文件)的版本控制,也会存在一些问题,主要有两点:roW28资讯网——每日最新资讯28at.com

  • 效率变慢:不管实际上用户是否使用到这些大文件的历史,都需要把每一个文件的每一个版本下载到本地仓库。毫无疑问,下载耗时的增加给用户带来了更多的等待时间。
  • 空间变大:一个Git仓库存放的大型的文件越多,加之伴随着其关联提交不断增多,Git仓库会以非常快的速率膨胀,占用更多的磁盘空间。

Git LFS是Git的一个扩展,旨在更有效地处理大型文件。它通过将大文件存储在单独的位置,而在Git仓库中只保留引用和元数据,来减小仓库的体积。这使得Git仓库能够更快速地克隆、推送和拉取,同时有效地处理大型媒体文件、二进制文件等。roW28资讯网——每日最新资讯28at.com

安装Git LFS

  • Windows

目前lfs已经集成在了Git for Windows 中,直接下载和使用最新版本的Windows Git即可。roW28资讯网——每日最新资讯28at.com

  • Linux

直接下载二进制包:https://github.com/git-lfs/git-lfs/releasesroW28资讯网——每日最新资讯28at.com

直接执行解压后的./install.sh脚本即可,这个脚本会做两个事情:roW28资讯网——每日最新资讯28at.com

在$PATH中安装Git LFS的二进制可执行文件roW28资讯网——每日最新资讯28at.com

执行git lfs install命令,让当前环境支持全局的LFS配置roW28资讯网——每日最新资讯28at.com

初始化仓库和跟踪大文件

初始化仓库

安装成功后执行以下命令,让仓库支持LFSroW28资讯网——每日最新资讯28at.com

git lfs install

执行显示roW28资讯网——每日最新资讯28at.com

Updated Git hooks.Git LFS initialized.

配置跟踪大文件

要使用Git LFS跟踪大文件,你需要使用git lfs track命令。例如:roW28资讯网——每日最新资讯28at.com

git lfs track "*.zip"

这告诉Git LFS来跟踪所有.zip。你可以使用通配符或者指定特定的文件名。roW28资讯网——每日最新资讯28at.com

执行git lfs track(不带任何参数),可以查看当前已跟踪的Git LFS File 类型:roW28资讯网——每日最新资讯28at.com

git lfs track

会展示当前已跟踪的Git LFS File 类型或文件roW28资讯网——每日最新资讯28at.com

Listing tracked patterns    *.bigfile (.gitattributes)    *.exe (.gitattributes)    *.zip (.gitattributes)Listing excluded patterns

track 命令实际上是修改了仓库中的.gitattributes文件,我们执行以下命令将该文件add添加到暂存区。roW28资讯网——每日最新资讯28at.com

git add .gitattributes

为了让我们刚配置的跟踪文件生效,需要将.gitattributes文件进行提交:roW28资讯网——每日最新资讯28at.com

git commit -m "添加.zip lfs配置"

撤销LFS跟踪

你可以取消继续跟踪某类文件,并将其从cache中清理:roW28资讯网——每日最新资讯28at.com

git lfs untrack "*.zip"git rm --cached "*.zip"

如果你想将这些文件添加回常规 Git 跟踪,可以执行以下操作:roW28资讯网——每日最新资讯28at.com

git lfs track "*.zip"git commit -m "重新添加.zip lfs配置"

提交和推送

一旦你设置好了Git LFS,可以像平常一样使用Git提交和推送文件。Git LFS将自动处理大文件的上传和下载。roW28资讯网——每日最新资讯28at.com

git add .git commit -m "Add large files"git push origin master

拉取和检出

在拉取更改或切换分支时,Git LFS会自动下载所需的大文件。roW28资讯网——每日最新资讯28at.com

git pull origin mastergit checkout other-branch

锁定和解锁文件

通过git lfs lock命令,你可以锁定大文件,以防止其他人修改它们。解锁文件允许其他人继续修改文件。roW28资讯网——每日最新资讯28at.com

git lfs lock some_large_file.jpggit lfs unlock some_large_file.jpg

查看LFS信息

使用以下命令可以查看有关LFS的信息:roW28资讯网——每日最新资讯28at.com

git lfs ls-filesgit lfs status

这些命令提供了有关跟踪文件的详细信息,包括文件的大小和当前状态。roW28资讯网——每日最新资讯28at.com

Git LFS工作原理

其工作原理如下:roW28资讯网——每日最新资讯28at.com

  • Git 场景

图片图片roW28资讯网——每日最新资讯28at.com

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

  • Git LFS场景

图片图片roW28资讯网——每日最新资讯28at.com

如图片所示,我们可以针对jpg图片使用Git LFS的存储能力,在push过程中将其上传至大文件存储服务。同时,大文件对应的指针文件将连同其他的普通的代码文件推送到远端Git仓库中。roW28资讯网——每日最新资讯28at.com

  • Git LFS处理流程

图片图片roW28资讯网——每日最新资讯28at.com

优势和适用场景

Git LFS在以下方面为项目带来了显著的优势:roW28资讯网——每日最新资讯28at.com

  • 更快的操作速度

由于只需处理文件的引用,Git LFS使得Git仓库的克隆、推送和拉取操作更加迅速。roW28资讯网——每日最新资讯28at.com

  • 有效管理大型文件

对于大型媒体文件、二进制文件等,Git LFS提供了一种高效的版本控制方式,减小了仓库的体积。roW28资讯网——每日最新资讯28at.com

  • 团队协作

锁定文件的功能使得团队能够更好地协同工作,防止冲突。roW28资讯网——每日最新资讯28at.com

总结

总的来说,Git LFS是一个强大的工具,特别适用于那些需要处理大型文件的项目。通过更高效的文件管理,它使得团队能够更顺畅地进行版本控制,并确保项目的整体性能得到优化。roW28资讯网——每日最新资讯28at.com

在项目中引入Git LFS可能需要一些额外的配置和学习,但一旦熟悉了其基本用法,你将能够更好地利用Git LFS的优势,提高开发流程的效率。roW28资讯网——每日最新资讯28at.com

注:本文部分图片和文字引用的是阿里云的文档;roW28资讯网——每日最新资讯28at.com

原文链接https://help.aliyun.com/document_detail/206889.html?spm=a2c4g.206888.0.0.513353e40LNWBMroW28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-40659-0.html深入了解Git LFS:高效管理大型文件的利器

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Java高并发详解,死锁的成因与解决方法

下一篇: 真Python技巧实战应用,函数参数自动收集并批量处理

标签:
  • 热门焦点
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人“珍藏”是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • 电视息屏休眠仍有网络上传 爱奇艺被质疑“薅消费者羊毛”

    记者丨宁晓敏 见习生丨汗青出品丨鳌头财经(theSankei) 前不久,爱奇艺发布了一份亮眼的一季报,不仅营收和会员营收创造历史最佳表现,其运营利润也连续6个月实现增长。自去年年初
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 支持aptX Lossless无损传输 iQOO TWS 1赛道版发布限时优惠价369元

    2023年7月4日,“无损音质,声动人心”iQOO TWS 1正式发布,支持aptX Lossless无损传输,限时优惠价369元。iQOO TWS 1耳机率先支持端到端aptX Lossless无
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top