Skip to main content

Obsidian + Git 同步方案:多设备知识管理最佳实践

·1879 words·4 mins

摘要: 本文对比 Obsidian 多设备同步的 4 种主流方案,重点讲解 Git 同步的完整配置流程,包含自动提交、冲突解决、移动端配置等实战技巧。


一、同步方案对比
#

1.1 四种主流方案
#

方案 成本 难度 实时性 适用场景
Git 同步 免费 中等 手动 技术用户、版本控制需求
Obsidian Sync $8/月 简单 自动 官方方案、全平台
iCloud/坚果云 免费/付费 简单 自动 苹果生态/国内用户
Remotely Save 免费 中等 手动 WebDAV/S3/OSS

1.2 为什么选择 Git 同步?
#

优势:

  • ✅ 完全免费
  • ✅ 版本历史可追溯
  • ✅ 支持分支管理
  • ✅ 数据完全自主可控

劣势:

  • ❌ 需要手动提交推送
  • ❌ 冲突需要手动解决
  • ❌ 移动端配置复杂

二、Git 同步方案详解
#

2.1 环境准备
#

所需工具:

  • Obsidian(桌面端 + 移动端)
  • Git
  • 代码托管平台(GitHub/Gitee/GitLab)

创建仓库:

# 本地初始化
cd ~/Obsidian-Vault
git init

# 关联远程仓库
git remote add origin git@github.com:username/obsidian-vault.git

# 创建 .gitignore
cat > .gitignore << EOF
# 系统文件
.DS_Store
Thumbs.db

# 插件配置(可选)
.obsidian/plugins/*
!.gitkeep

# 日志文件
*.log
EOF

# 首次提交
git add .
git commit -m "Initial commit: Obsidian vault"
git push -u origin main

2.2 桌面端配置
#

方案一:Obsidian Git 插件(推荐)

  1. 安装插件:Settings → Community plugins → Browse → Obsidian Git
  2. 配置自动提交:
# .obsidian/plugins/obsidian-git/data.json
{
  "commitMessage": "vault backup: {{date}}",
  "autoSaveInterval": 5,  // 每 5 分钟自动提交
  "autoPush": true,
  "autoPull": true
}
  1. 设置 Git 凭据:
# 配置凭证缓存(1 小时有效)
git config --global credential.helper cache --timeout=3600

# 或使用 SSH 密钥(推荐)
ssh-keygen -t ed25519 -C "your@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 将公钥添加到 GitHub/Gitee
cat ~/.ssh/id_ed25519.pub

方案二:手动 Git 命令

创建快捷脚本:

# ~/bin/obsidian-sync
#!/bin/bash
cd ~/Obsidian-Vault
git add .
git commit -m "vault backup: $(date '+%Y-%m-%d %H:%M')"
git push
echo "✅ 同步完成"

2.3 移动端配置(iOS/Android)
#

iOS 方案:Working Copy + 快捷指令

  1. 安装 Working Copy(Git 客户端)
  2. 克隆仓库到本地
  3. 创建快捷指令:
获取当前快捷指令的输入 → 
切换到 Working Copy → 
提交所有更改 → 
推送远程仓库

Android 方案:MGit + FolderSync

  1. 安装 MGit(Git 客户端)
  2. 安装 FolderSync(文件同步)
  3. 配置 Obsidian 仓库路径
  4. 设置定时同步任务

移动端简化方案:Remotely Save 插件

  1. 安装 Remotely Save 插件
  2. 配置 WebDAV/S3/OSS
  3. 设置自动同步

三、冲突解决策略
#

3.1 预防冲突
#

最佳实践:

  • 每次编辑前先 pull 最新代码
  • 固定设备负责特定区域(如:桌面端写文章,移动端记笔记)
  • 设置合理的自动提交间隔(5-10 分钟)

3.2 解决冲突
#

Git 自动合并失败时:

# 查看冲突文件
git status

# 手动编辑冲突文件
# 找到 <<<<<<< HEAD 和 >>>>>>> origin/main 标记
# 保留需要的内容

# 标记解决
git add conflicted-file.md
git commit -m "Resolve merge conflict"
git push

Obsidian 冲突处理插件:

  • Merge Conflicts - 可视化解决冲突
  • Git - 内置 Git 功能

四、自动化配置
#

4.1 GitHub Actions 自动备份
#

# .github/workflows/backup.yml
name: Obsidian Backup

on:
  push:
    branches: [main]
  schedule:
    - cron: '0 2 * * *'  # 每天 2AM 自动备份

jobs:
  backup:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Create backup
        run: |
          tar -czf obsidian-backup-$(date +%Y%m%d).tar.gz .
      
      - name: Upload to Release
        uses: softprops/action-gh-release@v1
        with:
          files: obsidian-backup-*.tar.gz
          tag_name: backup-${{ github.run_number }}

4.2 定时同步脚本
#

#!/bin/bash
# /usr/local/bin/obsidian-auto-sync

VAULT_PATH="$HOME/Obsidian-Vault"
LOG_FILE="/var/log/obsidian-sync.log"

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}

cd "$VAULT_PATH" || exit 1

# 拉取最新
git pull --rebase
if [ $? -ne 0 ]; then
    log "❌ Pull failed"
    exit 1
fi

# 自动提交更改
git add .
git diff --cached --quiet
if [ $? -ne 0 ]; then
    git commit -m "auto backup: $(date '+%Y-%m-%d %H:%M')"
    git push
    log "✅ Sync completed"
else
    log "ℹ️ No changes"
fi

配置 Cron 任务:

# 每 30 分钟同步一次
crontab -e
*/30 * * * * /usr/local/bin/obsidian-auto-sync

五、其他同步方案
#

5.1 Obsidian Sync(官方)
#

配置步骤:

  1. 购买订阅($8/月或$96/年)
  2. Settings → Sync → Sign in
  3. 创建远程存储
  4. 选择同步内容(笔记/配置/插件)

优点:

  • 端到端加密
  • 版本历史保留 1 年
  • 支持选择性同步

5.2 iCloud 同步(苹果生态)
#

配置:

  1. 将 vault 放在 iCloud Drive 目录
  2. 所有设备登录同一 Apple ID
  3. 确保 iCloud 同步开启

注意: Windows 端 iCloud 同步较慢

5.3 坚果云同步(国内推荐)
#

配置:

  1. 安装坚果云客户端
  2. 创建同步文件夹
  3. Obsidian vault 放在同步目录

优点:

  • 国内访问速度快
  • 支持历史版本
  • 免费额度够用

5.4 Remotely Save(第三方插件)
#

支持服务:

  • WebDAV(坚果云/Nextcloud)
  • S3(AWS/阿里云 OSS)
  • OneDrive
  • Dropbox

配置示例(WebDAV):

服务器:dav.jianguoyun.com/dav
用户名:你的坚果云用户名
密码:第三方应用密码
目录:/obsidian-vault

六、性能优化
#

6.1 减少同步数据量
#

.gitignore 优化:

# 排除大型附件
*.pdf
*.mp4
*.mov
*.zip

# 排除缓存
.cache/
.parcel-cache/

# 排除临时文件
*.tmp
*.swp

文件分库策略:

  • 主库:日常笔记(同步频繁)
  • 附件库:图片/PDF/视频(同步较少)

6.2 加快同步速度
#

Git 优化:

# 启用压缩
git config --global compression.level 9

# 浅克隆(只获取最近提交)
git clone --depth 1 <repo-url>

# 定期清理
git gc --aggressive
git prune

七、安全建议
#

7.1 敏感信息保护
#

不要同步的内容:

  • API Keys
  • 密码文件
  • 个人隐私笔记

加密方案:

  • 使用 Cryptomator 加密整个 vault
  • 使用 Encrypted Text 插件加密单条笔记

7.2 访问控制
#

私有仓库设置:

  • GitHub:Settings → Private
  • Gitee:设置 → 公开/私有
  • 定期审查协作者权限

八、总结
#

方案选择建议
#

用户类型 推荐方案 理由
技术开发者 Git 同步 版本控制、免费
苹果用户 iCloud 无感同步、生态整合
国内用户 坚果云 速度快、稳定
企业用户 Obsidian Sync 官方支持、加密

关键配置清单
#

  • 创建 Git 仓库并配置 SSH 密钥
  • 安装 Obsidian Git 插件
  • 配置自动提交(5 分钟间隔)
  • 移动端配置 Working Copy/MGit
  • 设置 .gitignore 排除大文件
  • 配置定时备份脚本
  • 敏感信息加密处理

参考资料: