如何使用 Git LFS 功能解决 Obsidian 过多附件导致的首次同步问题
问题描述:
当你的 Obsidian 仓库包含大量图片等附件时,首次同步到新设备会变得非常困难,甚至超时。
解决方案:
使用 Git Large File Storage (LFS) 功能,它可以将图片等大型文件存储在独立的服务器上,只在 Git 仓库中保存指向这些文件的指针,从而减小仓库大小,提高同步效率。
步骤:
- 准备工作:
- 确保已经安装 Git 并配置了 Obsidian 仓库。
- 了解 Git 基础操作,如 clone、add、commit、push 等。
- 可选:在桌面端安装 VSCode 并打开 Obsidian 仓库目录,方便在终端中操作。
- 重要: 在进行任何操作前,建议对仓库进行全量备份,以防意外情况。
2.安装 Git LFS:
– 在命令行中运行以下命令:
bash
git lfs install
-
跟踪文件类型:
- 决定哪些文件类型需要使用 LFS 跟踪,例如所有图片文件:
bash
gitlfs track *.jpg
git lfs track *.png
- 这会在仓库中创建一个
.gitattributes
文件,记录哪些文件类型被 LFS 跟踪。
- 决定哪些文件类型需要使用 LFS 跟踪,例如所有图片文件:
-
提交
.gitattributes
文件:- 将
.gitattributes
文件添加到 Git 仓库并提交:
bash
git add .gitattributes
git commit -m Add Git LFS for *.jpg and *.png files
- 将
-
添加、提交和推送文件:
- 现在可以像往常一样添加、提交和推送文件。Git LFS 会自动处理大型文件。
- 例如:
bash
git add file.jpg
git commit -m Add large file
git push origin master
避免拉取附件:
- 使用
git clone
的--filter=blob:none
选项:- 只下载 Git 仓库内容,不下载 LFS 文件。
- 适用于 Git 2.19 及以上版本。
- 命令:
bash
git clone --filter=blob:none \u003crepository-url\u003e
- 需要手动拉取特定 LFS 文件时,可以使用
git lfs pull
。
- 禁用自动下载 LFS 文件:
- 已经克隆了仓库后,可以使用以下命令禁用自动下载:
bash
git lfs install --skip-smudge
- 现在拉取仓库内容时,LFS 文件不会被自动下载。
- 可以使用
git lfs pull
手动下载特定 LFS 文件。
- 已经克隆了仓库后,可以使用以下命令禁用自动下载:
疑难杂症:
- 报错: 启用 LFS 后出现各种报错。
-建议停止操作并搜索对应报错的解决方法。- 重新 clone 整个仓库通常是解决问题的最简单方法。
- 客户端/服务端支持:
- 确保客户端和服务端都支持 Git LFS。
- 常见服务端:GitHub、GitLab、Bitbucket 等。
- 如果使用自定义服务器,需要检查是否支持 Git LFS。
总结:
Git LFS 是一种高效的解决方案,可以解决 Obsidian 仓库中过多附件导致的首次同步问题。通过使用 Git LFS,你可以轻松地管理大型文件,并保持Git 仓库的轻量级,提高同步效率。
其他建议:
- 考虑使用在线图床,将图片等大型文件存储在云端,进一步减小仓库大小。
- 定期清理仓库,删除不需要的附件,保持仓库的整洁。
- 了解 Git LFS的更多功能,例如
git lfs pull
、git lfs push
等。
希望以上信息对您有所帮助!
Views: 0