【干货】使用 Obsidian 的 Git 插件将你的笔记同步到 GitHub 私有仓库

前置条件

在开始之前,请确保你具备以下条件:

  1. Obsidian 安装:已在你的电脑或移动设备上安装了 Obsidian。
  2. Git 安装
    • Windows:从 git-scm.com 下载并安装 Git。
    • Mac:使用 Homebrew 安装(brew install git)或从 git-scm.com 下载。
    • Linux:使用包管理器安装,例如 sudo apt-get install git(Debian/Ubuntu)或 sudo dnf install git(Fedora)。
  3. GitHub 账号:已注册 GitHub 账号,并启用了双重认证(推荐)。
  4. 基本了解:对 GitHub 和 Obsidian 的基本操作有一定了解(无需深入 Git 知识)。

步骤一:创建 GitHub 私有仓库

  1. 登录 GitHub
  2. 创建新仓库
    • 点击右上角的 “+” 图标,选择 New repository
    • 填写仓库名称,例如 Obsidian-Notes
    • 选择 Private(私有仓库),确保你的笔记不会公开。
    • 暂时不需要勾选 “Add a README file” 或其他选项。
    • 点击 Create repository
  3. 获取仓库地址
    • 创建完成后,复制仓库的 HTTPS 或 SSH 地址(例如 https://github.com/你的用户名/Obsidian-Notes.git)。建议使用 HTTPS,初学者更简单。

步骤二:生成 GitHub 个人访问令牌(Personal Access Token, PAT)

GitHub 不再支持密码认证,因此需要 PAT 来进行身份验证。

  1. 进入设置
    • 在 GitHub 页面右上角,点击你的头像,选择 Settings
    • 向下滚动到左侧菜单,点击 Developer settings
  2. 创建令牌
    • 点击 Personal access tokens > Fine-grained tokens(推荐,权限更精细)或 Tokens (classic)
    • 点击 Generate new token
    • 如果选择 Fine-grained token:
      • 命名你的令牌,例如 “Obsidian Sync”。
      • 设置过期时间(建议 90 天或自定义)。
      • Repository access 中,选择 Only select repositories,然后选择刚创建的私有仓库。
      • Permissions 中,启用 Contents(读写权限)。
    • 如果选择 Classic token:
      • 勾选 repo 权限(包含所有仓库读写权限)。
    • 点击 Generate token
  3. 保存令牌
    • 复制生成的令牌,妥善保存(它只会显示一次)。建议存储在密码管理器中。

步骤三:初始化本地 Obsidian 仓库

  1. 选择或创建 Obsidian Vault
    • 打开 Obsidian,选择你的笔记 Vault(文件夹)。如果还没有 Vault,可以创建一个新的。
    • 假设你的 Vault 文件夹路径为 ~/Obsidian-Notes
  2. 初始化 Git 仓库
    • 打开终端(Windows 使用 Git Bash,Mac/Linux 使用内置终端)。
    • 导航到 Vault 文件夹:
      cd ~/Obsidian-Notes
      
    • 初始化 Git 仓库:
      git init
      
    • 将 Vault 文件夹与 GitHub 仓库关联:
      git remote add origin https://github.com/你的用户名/Obsidian-Notes.git
      
  3. 添加 .gitignore 文件(可选但推荐):
    • 在 Vault 根目录创建一个 .gitignore 文件,排除不想同步的文件,例如:
      .obsidian/cache/
      .obsidian/workspace.json
      .obsidian/appearance.json
      .trash/
      
    • 这可以避免同步 Obsidian 的临时文件或设备特定的配置。
  4. 提交初始文件
    • 添加所有文件到 Git:

      git add .
      
    • 提交更改:

      git commit -m "Initial commit"
      
    • 重命名本地仓库:

      git branch -m master main
      
    • 推送到 GitHub:

      git push -u origin main
      
    • 如果提示输入认证,用户名输入你的 GitHub 用户名,密码输入之前生成的 PAT。

如果遇到错误 fatal: detected dubious ownership in repository ,不要担心,这是 Git 的安全检查机制触发的,原因是 Git 检测到仓库目录的所有者与当前用户不匹配。这种情况通常发生在目录由其他用户或管理员账户创建、修改,或在外部/共享磁盘上操作时。


解决方法 1:将目录添加到 Git 的安全列表

这是最简单且推荐的解决方案,告诉 Git 信任这个目录。

  1. 运行安全配置命令
    打开终端(Git Bash、命令提示符或 PowerShell),运行以下命令:

    git config --global --add safe.directory "E:/新备份/Documents/Obsidian Vault"
    

    这会标记 Obsidian Vault 目录为安全,绕过所有权检查。

  2. 重新添加远程仓库
    再次运行你之前的命令:

    git remote add origin https://github.com/Yanxinwu946/Obsidian-Notes.git
    
  3. 验证远程仓库
    检查远程仓库是否正确添加:

    git remote -v
    

    你应该看到类似以下输出:

    origin  https://github.com/Yanxinwu946/Obsidian-Notes.git (fetch)
    origin  https://github.com/Yanxinwu946/Obsidian-Notes.git (push)
    
  4. 继续同步操作
    添加、提交并推送文件到 GitHub:

    git add .
    git commit -m "初次提交"
    git push -u origin main
    

    如果提示输入认证信息:

    • 用户名:你的 GitHub 用户名(Yanxinwu946)。
    • 密码:使用 GitHub 个人访问令牌(PAT)。如果你还没生成 PAT,请参考下面的说明。

解决方法 2:修改目录所有权(可选)

如果你不希望使用 safe.directory(例如出于安全考虑或问题仍未解决),可以更改目录的所有权,使其与当前用户(T6A/Administrator)匹配。

  1. 检查当前所有权
    在命令提示符或 PowerShell 中运行:

    dir "E:\新备份\Documents\Obsidian Vault" /q
    

    这会显示目录的当前所有者。

  2. 更改所有权
    使用 icacls 命令将所有权改为当前用户:

    icacls "E:\新备份\Documents\Obsidian Vault" /setowner "T6A\Administrator" /t /c
    
    • /t:递归更改目录下所有文件和子目录的所有权。
    • /c:继续执行,即使遇到错误。
  3. 验证更改
    再次运行 dir "E:\新备份\Documents\Obsidian Vault" /q,确认所有者已变为 T6A\Administrator

  4. 重试 Git 命令
    返回步骤 1 的 git remote add origin 命令,继续操作。


步骤四:在 Obsidian 中安装和配置 Git 插件

  1. 安装 Obsidian Git 插件
    • 打开 Obsidian,进入 Settings > Community plugins
    • 如果是第一次使用社区插件,关闭 Safe mode
    • 点击 Browse,搜索 “Obsidian Git”。
    • 点击 Install,然后 Enable
  2. 配置插件
    • 进入 Settings > Obsidian Git
    • 基本设置
      • Vault backup interval:设置为自动提交的间隔,例如 5 分钟(单位:分钟)。
      • Commit message:自定义提交信息,例如 Auto commit from Obsidian
      • Auto push:启用,以便每次提交后自动推送到 GitHub。
      • Pull updates on startup:启用,确保启动 Obsidian 时自动拉取最新更改。
    • 认证设置
      • 如果使用 HTTPS,在 Username 输入你的 GitHub 用户名,在 Password 输入 PAT。
      • 如果使用 SSH,确保本地已配置 SSH 密钥(见下文“高级设置”)。
    • 其他推荐设置
      • 启用 Auto pull,定期拉取远程更改。
      • 如果 Vault 较大,调整 List files individuallyDisable on mobile(移动端性能可能较差)。
  3. 测试同步
    • 创建一个新笔记,保存后等待插件自动提交(或手动触发:Command Palette > Obsidian Git: Create backup)。
    • 检查 GitHub 仓库,确认新笔记是否出现。

步骤五:在其他设备上同步

  1. 克隆仓库到新设备
    • 确保新设备已安装 Git 和 Obsidian。
    • 打开终端,克隆仓库:
      git clone https://github.com/你的用户名/Obsidian-Notes.git
      
    • 输入 GitHub 用户名和 PAT 进行认证。
  2. 打开 Vault
    • 在 Obsidian 中,选择 Open folder as vault,导航到克隆的文件夹(例如 Obsidian-Notes)。
  3. 安装和配置 Git 插件
    • 重复步骤四的插件安装和配置。
    • 确保所有设备的插件设置一致(例如自动提交间隔、认证信息)。
  4. 同步测试
    • 在一台设备上编辑笔记,等待自动提交和推送。
    • 在另一台设备上启动 Obsidian,确认是否自动拉取了更改。

步骤六:移动端设置(可选)

Obsidian Git 在移动端的性能较差(由于使用 JavaScript 实现的 isomorphic-git),但仍可使用。以下是 iOS 和 Android 的设置方法:

  1. iOS
    • 安装 Obsidian 应用。
    • 方法一:直接使用 Git 插件:
      • 在 Obsidian 设置中安装 Git 插件,配置与桌面端相同(输入 PAT)。
      • 克隆仓库:进入插件设置,选择 Clone an existing remote repo,输入仓库 HTTPS 地址和 PAT。
      • 限制:大仓库可能较慢,建议关闭 Auto commit,手动触发同步。
    • 方法二:使用第三方 Git 客户端(如 Working Copy):
      • 安装 Working Copy(需付费,约 $19.99)。
      • 在 Working Copy 中克隆 GitHub 仓库。
      • 在 Obsidian 中打开 Working Copy 的文件夹作为 Vault。
      • 使用 Working Copy 手动提交和推送更改。
  2. Android
    • 安装 Obsidian 和 Termux(终端模拟器)。
    • 在 Termux 中安装 Git(pkg install git),然后克隆仓库。
    • 在 Obsidian 中打开克隆的文件夹。
    • 配置 Git 插件或通过 Termux 手动执行 Git 命令。
  3. 注意事项
    • 移动端同步可能较慢,尤其是文件较多时。
    • 建议在移动端只做轻量编辑,复杂操作留给桌面端。

高级设置(可选)

  1. 使用 SSH 认证
    • 生成 SSH 密钥:
      ssh-keygen -t ed25519 -C "your_email@example.com"
      
    • 将公钥(~/.ssh/id_ed25519.pub)添加到 GitHub(Settings > SSH and GPG keys > New SSH key)。
    • 更新远程仓库地址为 SSH:
      git remote set-url origin git@github.com:你的用户名/Obsidian-Notes.git
      
    • 好处:无需每次输入 PAT,适合频繁推送。
  2. 处理冲突
    • 如果多设备同时编辑同一文件,可能出现合并冲突。
    • 解决方法:
      • 打开终端,运行 git pull 查看冲突。
      • 手动编辑冲突文件,选择保留的更改。
      • 提交修复:git add . && git commit -m "Resolve conflict" && git push
    • 预防:设置较短的自动拉取间隔,避免同时编辑。
  3. 优化大仓库
    • 如果 Vault 文件较多,启用插件的 Stage files individually 选项。
    • 定期清理 .gitignore 中的无关文件。
    • 考虑使用 LFS(Large File Storage)存储大附件(需额外配置)。

注意事项

  1. 隐私保护
    • 确保仓库为私有,防止笔记泄露。
    • 不要将 PAT 存储在 Vault 中,建议使用密码管理器。
  2. 备份
    • GitHub 不是真正的备份解决方案,建议定期导出 Vault 到本地或其他云服务(如 Google Drive)。
  3. 性能问题
    • 如果 Vault 包含数千个文件,同步可能变慢。尽量精简 Vault,移除不必要的文件。
  4. 移动端限制
    • Obsidian Git 在移动端可能不稳定,建议主要在桌面端操作。
  5. 学习曲线
    • 如果你是 Git 新手,可能需要时间适应术语(如 commit、push、pull)。遇到问题时,查阅 GitHub 文档或 Obsidian 论坛。

故障排除

  1. 推送失败(401/403 错误)
    • 检查 PAT 是否正确或已过期。
    • 确认 PAT 有 repoContents 权限。
  2. 插件没有自动提交
    • 确保 Vault backup interval 已设置。
    • 检查终端是否有 Git 错误(运行 git status 查看状态)。
  3. 同步冲突
    • 运行 git pull --rebase 尝试自动合并。
    • 如果失败,手动解决冲突(见“高级设置”)。
  4. 移动端卡顿
    • 禁用移动端的自动提交,手动触发同步。
    • 考虑使用第三方 Git 客户端。

推荐资源

  • Obsidian Git 插件文档:https://github.com/Vinzent03/obsidian-git
  • GitHub 文档:https://docs.github.com/
  • Obsidian 论坛:https://forum.obsidian.md/ (搜索 “Obsidian Git” 获取社区帮助)
  • 视频教程
    • YouTube 搜索 “Obsidian Git Sync GitHub”,例如 Curtis McHale 的教程(2022 年)。

通过以上步骤,你应该能够成功将 Obsidian Vault 同步到 GitHub 私有仓库,实现跨设备无缝同步和版本控制。

Windbg是一款功能强大的调试工具,被广泛用于Windows应用程序的开发和调试过程中。以下是Windbg使用教程的简要介绍。 首先,你需要下载和安装Windbg工具。你可以从微软的官方网站下载最新版本的Windbg,并按照安装向导进行安装。安装完成后,你可以打开Windbg并准备开始使用。 Windbg的主要功能之一是通过调试符号,帮助我们进行代码调试。调试符号通常是用于将代码行映射到二进制文件中的地址的文件。你可以使用.symfix指令设置符号搜索路径,并使用.symload指令加载可执行文件的调试符号,以便在调试过程中正确显示源代码行号。 另一个重要的功能是使用Windbg分析内存转储文件。通过使用Windbg加载转储文件,你可以检查应用程序的状态、变量的值以及执行流程等信息。在Windbg中,你可以使用!analyze命令自动分析转储文件并获取有关程序崩溃的详细信息。 此外,Windbg还提供了许多其他有用的命令和功能,如设置断点、查看寄存器的值、查找内存泄漏等。你可以通过查阅Windbg的官方文档或参考其他教程来了解更多有关这些命令和功能的信息。 总之,Windbg是一个强大且灵活的调试工具,提供了许多有用的功能来帮助开发人员进行应用程序的调试和分析。通过学习和熟练使用Windbg,你可以更好地理解和解决应用程序中的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值