Git进阶(十五):Git LFS 使用详解
文章目录
- 一、介绍
- 二、Git LFS 使用步骤
- 三、场景示例
- 四、拓展阅读
一、介绍
Git LFS (Large File Storage) 是一个 Git 扩展,它使 Git 更适合处理大型文件,如音频、视频、图像或任何其他二进制大文件。Git LFS 替换仓库中的大文件为文本指针文件,这些文件包含指向实际大文件位置的信息。这样,Git 仓库的大小显著减小,同时也保留了对大文件的版本控制能力。
二、Git LFS 使用步骤
-
安装 Git LFS
首先,需要在机器上安装 Git LFS。可以从 Git LFS 的官方网站下载并安装适合操作系统的版本。 -
初始化 Git LFS
在本地仓库中运行git lfs install
命令。这会确保 Git LFS 的钩子被正确地设置在 Git 配置中。 -
指定要跟踪的文件类型
使用git lfs track "*.ext"
命令来指定 Git LFS 应该跟踪的文件类型。例如,如果想要跟踪所有.jpg
文件,可以运行:
git lfs track "*.jpg"
- 推送更改
推送之前,可能需要添加.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
-
拉取文件
当在其他克隆的仓库中拉取时,Git LFS 将自动下载并替换指针文件为实际的大文件。 -
安装正确定验证
要确定Git LFS是否成功,可以执行以下步骤:
检查Git LFS的安装:首先,确保已经正确安装了Git LFS。可以在命令行终端中运行
git lfs version
命令,如果能够输出Git LFS的版本信息,则表示已经成功安装。确认仓库是否启用了Git LFS:在Git存储库中,可以通过命令行输入
git lfs install
来确认是否启用了Git LFS。如果结果显示”Git LFS initialized.”,则表示Git LFS已启用。如果结果显示”Git LFS is already initialized.”,则表示Git LFS已经在该仓库中启用。查看LFS文件追踪情况:运行
git lfs track
命令可以查看当前仓库中被Git LFS追踪的文件列表。如果已经追踪了需要使用Git LFS进行管理的大文件,则表示Git LFS成功启用。检查LFS配置文件:Git LFS使用一个名为
.gitattributes
的配置文件来指定需要使用Git LFS进行管理的文件类型。可以用文本编辑器打开该文件,检查是否已经正确指定了需要使用Git LFS进行管理的文件类型。查看文件提交情况:可以使用
git lfs ls-files
命令来查看当前仓库中使用Git LFS进行管理的文件列表。如果显示了预期的大文件列表,则说明Git LFS成功起作用。查看文件远程存储情况:可以使用
git lfs status
命令来查看当前仓库中使用Git LFS进行管理的文件在远程存储库中的状态。如果显示了正确的远程存储信息,则说明Git LFS成功上传了大文件至远程存储库。查看Git LFS的日志:Git LFS提供了一个命令行工具来查看Git LFS的日志信息。可以输入
git lfs logs last
来查看最近的Git LFS操作日志。可以查看Git LFS的提交、拉取等操作的详细信息,以确保它们顺利进行。
总结:通过执行上述步骤,可以确定Git LFS是否成功启用,并且大文件是否被正确追踪和上传至远程存储库。如果以上步骤均正常,说明Git LFS已经成功地工作。
三、场景示例
假设正在开发一个游戏项目,其中包含大量的纹理、模型和音效文件。这些文件通常都是二进制的且体积较大。为了有效地使用 Git 进行版本控制,决定使用 Git LFS。
步骤:
- 安装和初始化 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
- 指定要跟踪的文件类型:
git lfs track "*.png"
git lfs track "*.wav"
git lfs track "*.fbx"
- 推送更改:
git add .gitattributes
git commit -m "Add LFS tracking for large binary files"
git push
现在,当在项目中添加、修改或删除大文件时,Git LFS 将自动处理它们,而不会显著增加仓库的大小。当其他团队成员克隆或拉取仓库时,Git LFS 将只下载他们需要的文件,而不是整个仓库的历史版本。
这样,在团队就可以更高效地协作,同时保持对大文件的版本控制。
四、拓展阅读
- 《 Git LFS 官方网站》