Git LFS
研究了《0.0 Obsidian 介绍》高级玩法之后,我开始 0.0 Obsidian 介绍 “存一切”,直到我将一个 3.4GB 的视频加入 Vault 中,直接让 NAS 歇菜了……因为我使用 obsidian-git 进行笔记同步,在 NAS 上通过 Gitea 搭建了一个 Git Server 作为托管。而 git 在处理大文件时,性能开销是很大的,以至于 NAS 处理起来过于吃力。于是我想到了 Git LFS。
Git LFS 全称为 Git Large File Storage,是一个 git 扩展,由 GitHub 开发。它专门适用于包含大量二进制大文件的仓库。其核心思想为:将大文件保存至仓库之外(本地路径、S3 兼容存储),在主仓库中保存的是大文件的轻量级指针。这样 git 就回归它最擅长的工作了,不论加入多少大文件,git 仓库自身都足够小。
Git 的二进制文件管理策略
如果 Git 仓库中包含二进制文件,如果文件更新了,git 并不会对二进制做 diff 保存增量,而是会保存一份完整的二进制文件。
假设向仓库中添加了一个 100MB 的文件,每修改提交一次,git repo 就增大 100MB。
安装
Git LFS 需要单独安装,我使用 Arch Linux,安装指令为:
sudo pacman -S git-lfs
Gitea 开启 Git LFS
幸运的是,Gitea 支持 LFS。
首先在 Gitea 的 Site Administration 中查看 LFS 功能是否开启:
Gitea 支持多种 LFS 后端,比如本地文件系统、S3 存储等。我的 Gitea 运行在 NAS 上,因此我选用本地文件系统即可。
网络资源
- Git Large File Storage | Git Large File Storage (LFS) replaces large files
- Git LFS的使用 - 简书
- 详解 Git 大文件存储(Git LFS) - 知乎
本文作者:Maeiee
本文链接:Git LFS
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!