在使用 Obsidian 进行笔记同步时,Git LFS(Git Large File Storage)功能确实是一个很好的解决方案,尤其是当你的仓库中包含大量附件时。以下是如何为一个已有的 Obsidian 仓库启用 Git LFS 功能,以及如何避免拉取附件的详细步骤:
如何为一个已有仓库启用 Git LFS
-
准备工作:
- 确保你的 Obsidian 仓库已经配置好 Git。
- 建议在操作前对仓库进行全量备份,以防万一。
- 可以在桌面端的 VSCode 客户端中操作,以便更清晰地看到每一步的结果。
-
安装 Git LFS:
- 在命令行中运行:
git lfs install
- 在命令行中运行:
-
跟踪文件类型:
- 选择你想要使用 LFS 跟踪的文件类型。例如,如果你想跟踪所有的
.jpg
和.png
文件,运行:
git lfs track *.jpg
git lfs track *.png
- 这会在你的仓库中创建一个
.gitattributes
文件,其中包含了哪些文件类型被 LFS 跟踪的信息。
- 选择你想要使用 LFS 跟踪的文件类型。例如,如果你想跟踪所有的
-
添加和提交 .gitattributes 文件:
- 运行以下命令:
git add .gitattributes
git commit -m Add Git LFS for *.jpg and *.png files
- 运行以下命令:
-
像平常一样添加和提交文件:
- 当你添加和提交一个被 LFS 跟踪的文件时,Git 仓库中存储的只是一个指向 LFS 存储的文件的指针。
-
推送更改到远程仓库:
- 运行:
git push origin master
- 运行:
如何避免拉取附件
-
使用 git clone 的 –filter=blob:none 选项:
- 使用以下命令克隆仓库:
git clone --filter=blob:none <repository-url>
- 这样只会下载 Git 的内容,不会下载 LFS 文件。需要时,可以通过
git lfs pull
手动拉取。
- 使用以下命令克隆仓库:
-
禁用自动下载 LFS 文件:
- 如果已经克隆了仓库,可以运行以下命令禁用自动下载:
git lfs install --skip-smudge
- 现在可以正常拉取仓库内容,但 LFS 文件将不会被下载。需要时,使用
git lfs pull
或git lfs pull -I path/to/your/file/or/folder
下载特定文件或目录。
- 如果已经克隆了仓库,可以运行以下命令禁用自动下载:
如何解决疑难杂症
-
重新克隆仓库:如果在启用 LFS 后出现许多报错,可能需要重新克隆整个仓库,而不是在原有仓库基础上进行
git pull
。 -
确认客户端和服务端都支持 Git LFS:确保你的 Git 服务器(如 GitHub、GitLab、Bitbucket 或自定义服务器)支持 LFS。
-
解决手机端同步问题:如果使用的是如 Gogs 这样的服务端,并且遇到了手机端无法同步的问题,可以考虑关闭两步验证,或迁移到如 Gitea 这样的服务端。
通过以上步骤,你应该能够有效地使用 Git LFS 功能来解决 Obsidian 仓库中过多附件导致的同步问题。
Views: 1