为什么需要 Git LFS?
Git 在处理大文件时有一些问题:
- Git 会把每个版本的完整文件都存下来,即使只改动了一点,导致仓库迅速膨胀。
- 克隆仓库会变得很慢,因为所有大文件的历史版本都要下载。
- Git 本身对二进制文件的差异计算和存储效率不高。
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 仓库中。
验证效果
- 如果别人
clone
这个仓库并安装了 Git LFS,会自动拉取完整的大图片。 - 如果没安装 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
,重新提交即可。
Tags:
Git教程