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

Git进阶(十五):Git LFS 使用详解

文章目录

    • 一、介绍
    • 二、Git LFS 使用步骤
    • 三、场景示例
    • 四、拓展阅读

一、介绍

Git LFS (Large File Storage) 是一个 Git 扩展,它使 Git 更适合处理大型文件,如音频、视频、图像或任何其他二进制大文件。Git LFS 替换仓库中的大文件为文本指针文件,这些文件包含指向实际大文件位置的信息。这样,Git 仓库的大小显著减小,同时也保留了对大文件的版本控制能力。

二、Git LFS 使用步骤

  1. 安装 Git LFS
    首先,需要在机器上安装 Git LFS。可以从 Git LFS 的官方网站下载并安装适合操作系统的版本。

  2. 初始化 Git LFS
    在本地仓库中运行 git lfs install 命令。这会确保 Git LFS 的钩子被正确地设置在 Git 配置中。

  3. 指定要跟踪的文件类型
    使用 git lfs track "*.ext" 命令来指定 Git LFS 应该跟踪的文件类型。例如,如果想要跟踪所有 .jpg 文件,可以运行:

git lfs track "*.jpg"
  1. 推送更改
    推送之前,可能需要添加 .gitattributes 文件到仓库中,这是 Git LFS 存储跟踪规则的地方。然后,可以正常地提交和推送你的更改:
git add .gitattributes
git commit -m "Add LFS tracking for jpg files"
git push

.gitattributes 文件内容如下:

DEMOSDK filter=lfs diff=lfs merge=lfs -text
XYRTCEngine filter=lfs diff=lfs merge=lfs -text
  1. 拉取文件
    当在其他克隆的仓库中拉取时,Git LFS 将自动下载并替换指针文件为实际的大文件。

  2. 安装正确定验证
    要确定Git LFS是否成功,可以执行以下步骤:

  1. 检查Git LFS的安装:首先,确保已经正确安装了Git LFS。可以在命令行终端中运行git lfs version命令,如果能够输出Git LFS的版本信息,则表示已经成功安装。

  2. 确认仓库是否启用了Git LFS:在Git存储库中,可以通过命令行输入git lfs install来确认是否启用了Git LFS。如果结果显示”Git LFS initialized.”,则表示Git LFS已启用。如果结果显示”Git LFS is already initialized.”,则表示Git LFS已经在该仓库中启用。

  3. 查看LFS文件追踪情况:运行git lfs track命令可以查看当前仓库中被Git LFS追踪的文件列表。如果已经追踪了需要使用Git LFS进行管理的大文件,则表示Git LFS成功启用。

  4. 检查LFS配置文件:Git LFS使用一个名为.gitattributes的配置文件来指定需要使用Git LFS进行管理的文件类型。可以用文本编辑器打开该文件,检查是否已经正确指定了需要使用Git LFS进行管理的文件类型。

  5. 查看文件提交情况:可以使用git lfs ls-files命令来查看当前仓库中使用Git LFS进行管理的文件列表。如果显示了预期的大文件列表,则说明Git LFS成功起作用。

  6. 查看文件远程存储情况:可以使用git lfs status命令来查看当前仓库中使用Git LFS进行管理的文件在远程存储库中的状态。如果显示了正确的远程存储信息,则说明Git LFS成功上传了大文件至远程存储库。

  7. 查看Git LFS的日志:Git LFS提供了一个命令行工具来查看Git LFS的日志信息。可以输入git lfs logs last来查看最近的Git LFS操作日志。可以查看Git LFS的提交、拉取等操作的详细信息,以确保它们顺利进行。

总结:通过执行上述步骤,可以确定Git LFS是否成功启用,并且大文件是否被正确追踪和上传至远程存储库。如果以上步骤均正常,说明Git LFS已经成功地工作。

三、场景示例

假设正在开发一个游戏项目,其中包含大量的纹理、模型和音效文件。这些文件通常都是二进制的且体积较大。为了有效地使用 Git 进行版本控制,决定使用 Git LFS。

步骤:

  1. 安装和初始化 Git LFS:
# 安装 Git LFS
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install# 或者在Windows环境下通过PowerShell运行
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/git-lfs/git-lfs/main/install/main/install-sh'))
git lfs install
  1. 指定要跟踪的文件类型:
git lfs track "*.png"
git lfs track "*.wav"
git lfs track "*.fbx"
  1. 推送更改:
git add .gitattributes
git commit -m "Add LFS tracking for large binary files"
git push

现在,当在项目中添加、修改或删除大文件时,Git LFS 将自动处理它们,而不会显著增加仓库的大小。当其他团队成员克隆或拉取仓库时,Git LFS 将只下载他们需要的文件,而不是整个仓库的历史版本。

这样,在团队就可以更高效地协作,同时保持对大文件的版本控制。

四、拓展阅读

  • 《 Git LFS 官方网站》

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue3使用provide和inject传递异步请求数据子组件接收不到
  • 线程(二) 线程清理和控制、线程的属性
  • 4.C_数据结构_队列
  • 用Java实现人工智能
  • Selenium实现滑动滑块验证码验证!
  • 龙蜥8.9系统hadoop3.3.6上spark3.5.2安装(伪分布)
  • 在RabbitMQ中四种常见的消息路由模式
  • Red Hat 和 Debian Linux 对比
  • 小程序体验版无法正常请求接口,开启 调试可以正常请求
  • 本地不能訪問linux的kafka服務
  • 大模型教程:使用 Milvus、vLLM 和 Llama 3.1 搭建 RAG 应用
  • this 指向
  • vmware中的ubuntu系统扩容分区
  • uniapp如何实现图片轮播特效?
  • 全面掌握 Jest:从零开始的测试指南(下篇)
  • #Java异常处理
  • (三)从jvm层面了解线程的启动和停止
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Angular4 模板式表单用法以及验证
  • httpie使用详解
  • If…else
  • Java小白进阶笔记(3)-初级面向对象
  • k8s如何管理Pod
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue 个人积累(使用工具,组件)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 给第三方使用接口的 URL 签名实现
  • 利用DataURL技术在网页上显示图片
  • 排序算法学习笔记
  • ​io --- 处理流的核心工具​
  • ​Python 3 新特性:类型注解
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (1)bark-ml
  • (2)STM32单片机上位机
  • (BFS)hdoj2377-Bus Pass
  • (笔试题)合法字符串
  • (初研) Sentence-embedding fine-tune notebook
  • (五)关系数据库标准语言SQL
  • (一)SpringBoot3---尚硅谷总结
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 8.0 中有哪些新的变化?
  • .NET CORE Aws S3 使用
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 给NuGet包添加Readme
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net接口调试与案例
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .so文件(linux系统)
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [AIGC] CompletableFuture的重要方法有哪些?
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)