当前位置: 首页 > article >正文

Git LFS

Git LFS(Git Large File Storage)是一个用于管理和版本控制大文件的工具,它扩展了 Git 的功能,帮助处理大文件或二进制文件的存储和管理问题。

为什么需要 Git LFS?

Git 默认是针对文本文件进行优化的,尤其是源代码文件(例如 .java, .cpp, .py 等),它使用的是增量存储方式(即只存储差异),这使得 Git 在管理这些文件时非常高效。然而,Git 对于 大文件(例如图片、视频、音频文件、二进制库文件等)并不高效。每次更新大文件时,Git 会将整个文件的副本存储一份,导致 仓库膨胀,并影响性能。

Git LFS 就是为了解决这一问题而诞生的,它让 Git 在处理大文件时更加高效,并使得仓库体积得到控制。

Git LFS 的工作原理

大文件的指针存储: Git LFS 将大文件替换为文件的指针(即一个小的文本文件,存储文件的元数据和位置),而不是直接存储大文件本身。这个指针文件通常只有几百字节,而不是大文件的实际内容。

将大文件存储在 LFS 服务器: 真实的大文件(例如 .mp4、.jpg、.aar 等)被上传到 Git LFS 服务器,而 Git 仓库只存储这些文件的指针。

拉取时获取大文件: 当你克隆、拉取或检出一个包含 LFS 文件的 Git 仓库时,Git LFS 会从 LFS 服务器上下载相应的实际文件,而不是直接从 Git 仓库中下载。

使用 Git LFS 的流程:
安装 Git LFS: 在使用 Git LFS 之前,你需要安装 Git LFS 工具。可以通过以下命令安装:

brew install git-lfs && git lfs install

跟踪大文件: 你可以告诉 Git LFS 需要跟踪哪些文件类型(例如 .mp4、.zip、.aar 等):

git lfs track "*.mp4"

这会在 .gitattributes 文件中添加相应的规则。

提交文件: 提交包含大文件的 Git 仓库时,Git LFS 会自动处理大文件,将它们替换为指针并上传到 LFS 服务器。

克隆、拉取和检出: 当你或其他人克隆、拉取或检出含有 LFS 文件的仓库时,Git LFS 会自动从 LFS 服务器下载实际的大文件。

当你执行 git pull 时,Git 会自动调用 git lfs pull 来下载任何 更新的 LFS 文件,这意味着你不需要单独运行 git lfs pull,除非你想显式地拉取或刷新 LFS 文件。

将 .aar 文件添加到 Git LFS 跟踪

要将 .aar 文件添加到 Git LFS 跟踪,运行以下命令:

git lfs track "*.aar"

执行此命令后,Git 会在项目的根目录下生成或更新一个名为 .gitattributes 的文件,并添加一行配置:

*.aar filter=lfs diff=lfs merge=lfs -text

配置解读:

  • filter=lfs:指定 Git LFS 作为此文件类型的过滤器,Git 在处理 .aar 文件时将通过 Git LFS。
  • diff=lfs:配置 Git 在处理这些文件的差异对比(diff)时使用 Git LFS。
  • merge=lfs:配置 Git 在合并这些文件时使用 Git LFS。
  • -text:指定这些文件为二进制文件(非文本),避免 Git 将其作为文本文件来处理行结尾转换等操作。

http://www.kler.cn/a/384765.html

相关文章:

  • LeetCode:3255. 长度为 K 的子数组的能量值 II(模拟 Java)
  • 一个小程序如何对接多个收款账户?
  • Gitlab新建用户无法收到邮件的问题解决办法
  • SQL 数据结构查询
  • ORACLE批量插入更新如何拆分大事务?
  • 前端开发实现自定义勾选/自定义样式,可复选,可取消勾选
  • 专业130+总400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书。
  • 内置函数【MySQL】
  • 生产环境中使用:带有核函数的 SVM 处理非线性问题
  • Unity 的 WebGL 构建中资源图片访问方式
  • 人工智能:重塑生活与工作的神奇力量
  • WebRTC REMB算法
  • AIGC--如何在内容创作中合理使用AI生成工具?
  • H.265流媒体播放器EasyPlayer.js网页web无插件播放器:如何优化加载速度
  • 使用 Java 实现邮件发送功能
  • Matlab实现鲸鱼优化算法优化随机森林算法模型 (WOA-RF)(附源码)
  • 23isctf
  • tomcat 开启远程debug模式
  • vue组件获取props中的数据并绑定到form表单 el-form-item的v-model中方法
  • Django-------重写User模型
  • PymuPDF4llm提取pdf文件文字、表格与图片
  • 弱口令攻击的实现原理及预防
  • qt QFileSystemModel详解
  • 使用Docker-Compose安装redis,rabbitmq,nacos,mysql,nginx,tomcat,portainer组件教程
  • 阿里云多端低代码开发平台魔笔使用测评
  • 信创背景下的GIS技术创新突破方向