Git系列:Git LFS 管理功能演示

 

为什么需要 Git LFS?

Git 在处理大文件时有一些问题:

  1. Git 会把每个版本的完整文件都存下来,即使只改动了一点,导致仓库迅速膨胀。
  2. 克隆仓库会变得很慢,因为所有大文件的历史版本都要下载。
  3. Git 本身对二进制文件的差异计算和存储效率不高。

用 Git LFS 管理一个大图片文件

Git LFS 功能指的是Git Large File Storage(Git LFS)。它是 Git 的一个扩展,用于处理和存储大文件。

步骤 1:初始化 Git 仓库

mkdir my-lfs-project
cd my-lfs-project
git init

步骤 2:启用 Git LFS 并追踪大文件类型(比如 JPG)

git lfs install
git lfs track "*.jpg"

这会生成一个 .gitattributes 文件,内容类似于:

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

步骤 3:添加一个大图片文件

你可以把一张大的图片放进这个目录,比如 big-photo.jpg

cp /path/to/your/big-photo.jpg .
git add .gitattributes big-photo.jpg
git commit -m "Add large photo with LFS"

步骤 4:推送到远程仓库(比如 GitHub)

你可以创建一个远程仓库,然后:

git remote add origin https://github.com/yourname/my-lfs-project.git
git push -u origin main

Git 会自动把 .jpg 文件上传到 GitHub 的 LFS 存储,而不是普通 Git 仓库中。

验证效果

  1. 如果别人 clone 这个仓库并安装了 Git LFS,会自动拉取完整的大图片。
  2. 如果没安装 Git LFS,他们会看到一个小的指针文件,内容类似:

version https://git-lfs.github.com/spec/v1
oid sha256:71f7a6cb3bd...
size 2083431

仓库结构看起来会是这样:

my-lfs-project/
├── .gitattributes
├── big-photo.jpg

如果取消追踪某些文件类型:

git lfs untrack "*.jpg"

然后修改 .gitattributes,重新提交即可。


发表评论

后一页 前一页