Published on

Obsidianのデータを同期する

Authors

Obsidian はノートアプリですが、複数デバイスで使うためにはノートを同期させる必要があります。同期方法が複数提供されているため、どの方法を選択すればよいか悩む方がいると思うので、現時点での筆者の複数端末間の同期方法を紹介します。

要約

現在実践しているノートの同期方法は以下のとおりです。

  • やりたいこと
    • 複数のPCで同期できること、モバイルからは参照できれば良い程度
    • ノートだけではなくプラグインも同期したい
    • 無料でやりたい
  • 手段
    • Obsidian git を使う

以前使っていた同期方法と問題

実は Obsidian Git に辿り着く前に、1年ほど別の方法で同期をしていました。 PC(mac)とモバイル(Android)の同期を実現するために、Remotely Save コミュニティプラグインを使い Dropbox で同期していたのですが、次の問題を抱えていたために同期方法を見直しました。

  • プラグインおよびプラグイン設定の同期ができない
    • 各環境毎に、プラグインをインストールし設定する必要があった
    • Remotely Save にプラグインの同期機能が experimental で提供されているが、設定を有効にしてもプラグインの同期はされなかった
  • ノートが同期されなかったり、頻繁にコンフリクトする
    • 同期処理が Dropbox 依存になり、ファイル数・サイズなどによって同期が遅くなってくる

Remotely Save 方式は PC とモバイルで同期できるという点では良かったのですが、日々のストレスが大きすぎたので Obsidian Git 方式に乗り換えました。

同期に使用するプラグインとサービス

  • コミュニティプラグイン
  • Git クラウドサービス
    • GitHub: ファイルのバージョン管理サービス
  • Git クライアントソフト

Obsidian Git の導入手順

メインPC (1台目)

  1. Obsidian Git コミュニティプラグインをインストールする
  2. Remotely Save コミュニティプラグインをOFFにする
  3. GitHub 上で、プライベートリポジトリを作成する。リポジトリ名は obsidian-gitとしました
  4. PC 上で、作成したリポジトリを clone する
  5. clone したフォルダ内に .gitignore ファイルを作成する
# exclude workspace cache
.obsidian/workspace.json

# exclude workspace cache specific to mobile devices
.obsidian/workspace-mobile.json

# exclude files cache of recent-files plugin
.obsidian/plugins/recent-files-obsidian/data.json

# exclude OS settings and caches
.trash/
.DS_Store
  1. clone したフォルダに、Vault の全ファイルをコピーする

  2. Git クライアントを使い、全コピーしたファイルを commit & push する

  3. Obsidian Git コミュニティプラグインの設定をする

    1. Split timer for automatic commit and sync : ON
    2. Auto commit interval (minutes): 15
    3. Auto commit after stopping file edits : ON
    4. Auto push interval (minutes): 15
    5. Auto pull interval (minutes): 15

    Obsidian 設定 > コミュニティプラグイン > Git

サブPC (2台目)

  1. PC上で、作成したリポジトリを clone する
  2. 既存の Vault を開くを選択し、clone したフォルダを指定する

モバイル (Android) (3台目)

※ モバイルの Git には問題がある(Obsidian Git - Performance on mobile)ため、Android からノートを編集することは諦めて、参照専用として使っています。

  1. GitHub アプリをインストールし、ログインする
  2. リポジトリのコード画面からファイルを参照する

細かいtips

Obsidian で最近開いたファイルは同期させない

Recent Files コミュニティプラグインを使い最近開いたファイル機能を追加しているのですが、PC によって作業するファイルが異なるので敢えて端末毎に最近開いたファイルを管理するようにしました。

最近開いたファイルのデータファイルを同期対象外にする → .gitignore ファイル に以下行を追加

# exclude files cache of recent-files plugin
.obsidian/plugins/recent-files-obsidian/data.json

デイリーノートをコンフリクトしにくくする

一番コンフリクトしやすいファイルは今日のデイリーノートだと思います。 同期タイミングとファイルを開くタイミングによってコンフリクトしやすくなるので、起動時にデイリーノートを開くを「OFF」 にしました。

設定 > コアプラグイン > デイリーノート > 起動時にデイリーノートを開く

Obsidian 設定 > コアプラグイン > デイリーノート > 起動時にデイリーノートを開く

まとめ

「Remotely Save + Dropbox」方式から「Obsidian Git」方式に変更し、1ヶ月ほど経過しましたが非常に満足できています。

端末毎のプラグイン差を気にする必要がなくなり、ファイルが同期されるまでちょっと待つといったストレスが無くなりました。まれにファイルがコンフリクトすることはありますが、マージすればよいと分かっているので安心して使えています。

Git はソフトウェアエンジニア用のサービスのイメージがあり、非エンジニアにはとっつきにくいサービスかもしれませんが、初回導入のハードルを超えられれば非常に便利な仕組みですので、今回の記事で導入を迷っている方の後押しになればと思います。

最後までお読みいただき、ありがとうございました。