【Obsidian】Gitプラグインでの管理におけるPCとスマホ間のWorkspace同期競合を解消する
はじめに
Obsidian を GitHub で管理しており、複数端末でノートを同期したい場合、Obsidian の Git プラグインを使うことが多いと思います。
しかし、この方法で同期設定を行うと、端末間での競合が発生して同期エラーとなることがよくあります。
特に、 Obsidian の各種設定ファイルが格納されている.obsidian
ディレクトリ内の.obsidian/workspace.json
(PC 用ワークスペースの設定) と .obsidian/workspace-mobile.json
(スマホ用ワークスペースの設定) が競合の原因となることが多いです。
これらはワークスペースの情報を管理するファイルであり、Obsidian で開くノートを変えるだけでも自動で内容が書き換えられるため、競合の原因になりがちです。
この記事では、既に Git リポジトリに .obsidian
ディレクトリをアップロードしてしまっている場合に、無視したいファイルをローカル環境から削除することなく Git の追跡対象から外し、今後のコミットで無視するようにするための手順を説明します。
想定状況
Obsidian に Git プラグインを追加し、Vault を GitHub のリモートリポジトリで管理している状況を想定します。
そして GitHub に.obsidian
ディレクトリがあり、その中に.obsidian/workspace.json
と .obsidian/workspace-mobile.json
の 2 つがある場合の対処法です。
作業概要
リポジトリのルートディレクトリに .gitignore
を追加することで、Git 管理から除外するファイルを指定します。
仮に .gitignore
に.obsidian
と追加すれば、.obsidian
ディレクトリ全体を一括して Git の追跡対象から外すことが可能です。
しかし、.obsidian
ディレクトリにはコミュニティプラグインやテンプレートなどの設定ファイルも含まれており、これらは複数端末間で共有できると楽です。
そのため、全ての設定ファイルを無視するのではなく、特に変更が多く競合が発生しやすい .obsidian/workspace.json
(PC 用のワークスペース) .obsidian/workspace-mobile.json
(モバイル用のワークスペース) だけを無視するようにすると使い勝手がいいと思います。
手順
以下の手順を実施します。
-
Git の追跡からファイルを外す。
Git の追跡から.obsidian/workspace.json
と.obsidian/workspace-mobile.json
を削除します。git rm --cached .obsidian/workspace.json .obsidian/workspace-mobile.json
-
.gitignore
に追跡対象外とするファイル名を追加する。
リポジトリのルートディレクトリに.gitignore
が無い場合は新規作成します。
すでに.gitignore
がある場合は、.gitignore
を開いて以下の 2 行を追記してください。.obsidian/workspace.json .obsidian/workspace-mobile.json
これにより、今後の Git 操作で
.obsidian/workspace.json
と.obsidian/workspace-mobile.json
が無視されるようになります。 -
変更内容を適用する。
ファイルの追跡解除と.gitignore
への変更を Git の履歴に記録します。git add .gitignore git commit -m "Stop tracking files and add to .gitignore" git push origin <ブランチ名>
この手順を完了すると、GitHub 上のリポジトリには .obsidian/workspace.json
と .obsidian/workspace-mobile.json
が含まれなくなり、今後これらのファイルによる競合に悩まされることがなくなります。
Discussion