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

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 官方网站》

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

相关文章:

  • 如何保护 Microsoft 网络免受中间人攻击
  • Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南
  • 【Linux】-学习笔记03
  • AI制作ppt
  • js 获取某日期到现在的时长 js 数字补齐2位
  • linux设置主机名
  • Leetcode—740. 删除并获得点数【中等】(unordered_map+set+sort)
  • python提取pdf表格到excel:拆分、提取、合并
  • LLM - 理解 多模态大语言模型 (MLLM) 的预训练与相关技术 (三)
  • S-Procedure的基本形式及使用
  • 补题篇--codeforces
  • 安卓将本地日志上传到服务器
  • C语言 | Leetcode C语言题解之题409题最长回文串
  • 深入理解Appium定位策略与元素交互
  • 使用原生HTML的drag实现元素的拖拽
  • Linux C execv/execl函数调用 bash -c
  • 【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动
  • supermap iclient3d for cesium中entity使用
  • 【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?
  • 常用压接线端子教程
  • 力扣爆刷第176天之贪心全家桶(共15道题)
  • Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 内存分配和回收规则
  • Linux 基础入门操作-实验二 makefile使用介绍 和 实验三 hello 输出
  • 【计算机网络】HTTP相关问题与解答
  • 深度学习:入门简介
  • ESP01的AT指令连接到阿里云平台