在使用 Obsidian 进行笔记同步时,Git LFS(Git Large File Storage)功能确实是一个很好的解决方案,尤其是当你的仓库中包含大量附件时。以下是如何为一个已有的 Obsidian 仓库启用 Git LFS 功能,以及如何避免拉取附件的详细步骤:

如何为一个已有仓库启用 Git LFS

  1. 准备工作

    • 确保你的 Obsidian 仓库已经配置好 Git。
    • 建议在操作前对仓库进行全量备份,以防万一。
    • 可以在桌面端的 VSCode 客户端中操作,以便更清晰地看到每一步的结果。
  2. 安装 Git LFS

    • 在命令行中运行:git lfs install
  3. 跟踪文件类型

    • 选择你想要使用 LFS 跟踪的文件类型。例如,如果你想跟踪所有的 .jpg.png 文件,运行:

      git lfs track *.jpg
      git lfs track *.png
    • 这会在你的仓库中创建一个 .gitattributes 文件,其中包含了哪些文件类型被 LFS 跟踪的信息。
  4. 添加和提交 .gitattributes 文件

    • 运行以下命令:

      git add .gitattributes
      git commit -m Add Git LFS for *.jpg and *.png files
  5. 像平常一样添加和提交文件

    • 当你添加和提交一个被 LFS 跟踪的文件时,Git 仓库中存储的只是一个指向 LFS 存储的文件的指针。
  6. 推送更改到远程仓库

    • 运行:git push origin master

如何避免拉取附件

  1. 使用 git clone 的 –filter=blob:none 选项

    • 使用以下命令克隆仓库:

      git clone --filter=blob:none <repository-url>
    • 这样只会下载 Git 的内容,不会下载 LFS 文件。需要时,可以通过 git lfs pull 手动拉取。
  2. 禁用自动下载 LFS 文件

    • 如果已经克隆了仓库,可以运行以下命令禁用自动下载:

      git lfs install --skip-smudge
    • 现在可以正常拉取仓库内容,但 LFS 文件将不会被下载。需要时,使用 git lfs pullgit lfs pull -I path/to/your/file/or/folder 下载特定文件或目录。

如何解决疑难杂症

  • 重新克隆仓库:如果在启用 LFS 后出现许多报错,可能需要重新克隆整个仓库,而不是在原有仓库基础上进行 git pull

  • 确认客户端和服务端都支持 Git LFS:确保你的 Git 服务器(如 GitHub、GitLab、Bitbucket 或自定义服务器)支持 LFS。

  • 解决手机端同步问题:如果使用的是如 Gogs 这样的服务端,并且遇到了手机端无法同步的问题,可以考虑关闭两步验证,或迁移到如 Gitea 这样的服务端。

通过以上步骤,你应该能够有效地使用 Git LFS 功能来解决 Obsidian 仓库中过多附件导致的同步问题。


read more

Views: 1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注