LV235-git-lfs的使用
一、准备工作
1. Github 仓库
前面已经知道免费版 Gitee 是不支持 Git LFS 存储的,所以这里我们用 Github 来测试,我们需要准备一个 github 仓库:

2. 大文件
这里可以找一个 100M 以上的文档作为测试。

二、不使用 Git LFS
我们不使用 Git LFS 推送一下:
git add .
git commit -m "添加文档"
git push -u origin master【例】

我们看一下 Github 仓库就会发现此次推送失败,没有任何文件推送上去。
三、Git LFS
1. 创建一个 Git LFS 仓库
要创建一个新的支持 Git LFS 的仓库,需要在创建仓库后运行 git lfs install:
git lfs install【例】
D:\sumu_blog\lfs-test [master ×]> git lfs install
Updated Git hooks.
Git LFS initialized.2. 跟踪文件
要将存储库中的文件类型与 Git LFS 关联,请输入 git lfs track,后跟要自动上传到 Git LFS 的文件扩展名。例如这里我们需要追踪两个pdf文件:
git lfs track "*.pdf"Git LFS 支持的模式与.gitignore 支持的模式相同。
【例】
D:\sumu_blog\lfs-test [master ×]> git lfs track "*.pdf"
Tracking "*.pdf"这个时候,在git仓库顶层目录生成了一个 .gitattributes文件:
*.pdf filter=lfs diff=lfs merge=lfs -text.gitattributes 是一种 Git 机制,用于将特殊行为绑定到某些文件模式。Git LFS 自动创建或更新.gitattributes 文件,以将跟踪的文件模式绑定到 Git LFS 过滤器。
3. 重新提交
git add .
git commit -a --amend --no-edit
git push -u origin master【例】
D:\sumu_blog\lfs-test [master × +1 ~2 -0 !]> git add .
D:\sumu_blog\lfs-test [master × +1 ~2 -0 ~]> git commit -a --amend --no-edit
[master 8db8125] 添加文档
Date: Sun Nov 9 18:42:37 2025 +0800
4 files changed, 8 insertions(+)
create mode 100644 .gitattributes
create mode 100644 README.md
create mode 100644 Rockchip RK3568 TRM Part2 V1.1-20210301.pdf
create mode 100644 Rockchip RK3588 TRM V1.0-Part2 20220309.pdf
D:\sumu_blog\lfs-test [master ×]> git push -u origin master
Uploading LFS objects: 100% (2/2), 181 MB | 5.5 MB/s, done.
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 667 bytes | 667.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:sumumm/lfs-test.git
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.这一次我们会发现,就没有报错了,所有文件正常提交,我们看一下仓库:

我们可以点开这个文档看一下:

对于使用Git LFS管理的文件,会有这种Stored with Git LFS的提示,但是对于我们来说,是无感的,因为它还是存在这个仓库中,我们还是可以直接看到它。
4. 停止使用 Git LFS
你可以通过从.gitattributes 文件中删除相应的行,或者通过运行 git lfs untrack 命令来停止使用 Git LFS 跟踪特定模式,命令格式和track是一样的,例如
git lfs untrack "*.pdf"5. 拉取仓库
我们尝试拉取一下刚才的仓库:
git clone https://github.com/user-name/repo-name.git【例】
D:\sumu_blog> git clone git@github.com:sumumm/lfs-test.git
Cloning into 'lfs-test'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 6 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (6/6), done.
Updating files: 100% (4/4), done.然后它就有可能一直卡在这里了,可能是网络问题,也肯能是下载的太慢,因为git clone默认是直接会执行checkout操作的,会直接拉取git lfs管理的大文件,我们不想这样的话也可以采取手动拉大文件的方式:
git clone --no-checkout https://github.com/sumumm/lfs-test.git
git lfs fetch
git lfs pull
这个时候就能看到进度了,看到网速很慢,所以前面的可能就是单纯的慢。