[Obsidian] 結局行き着いた .gitignore
'.obsidian' 配下の様々なファイルの更新状況を、Mac および iPhone で git と Working Copy を巧みに使いながら散々チェックしました。
結果、次のような '.gitignore' ファイルができあがりました。
# to exclude Obsidian's settings (including plugin and hotkey configurations)
# .obsidian/
# OR only to exclude workspace cache
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/*-plugins.json
.obsidian/plugins/recent-files-obsidian/data.json
.obsidian/plugins/obsidian-git/data.json
.obsidian/appearance.json
# exclude business notes
4[0-9]_*/
# Add below lines to exclude OS settings and caches
.trash/
.DS_Store
素直に '.obsidian' 以下を commit の対象としなければ、merge が頻繁に訪れたり、ファイルが行方不明になることはありませんでした。それでも、わたしは自動的にプラグインは同期してほしかった。と言うことで、ここへ行き着きました。
詳解しましょう。言わずもがな、のところは放置します。
Obsidian 固有のファイル
デバイス毎のワークスペース情報は同期させない
.obsidian/workspace.json
.obsidian/workspace-mobile.json
'workspace.json' が PC 用で、'workspace-mobile.json' が iOS などモバイル用です。このワークスペース情報は、デバイスごとに毎度変わる情報です。これらが共有されるのは良いことがありません。と言うことでこれらのファイルは無視です。
デバイス毎のプラグインの enable/disable は無視
.obsidian/*-plugins.json
'core-plugins.json' が Core のプラグインリスト。'community-plugins.json' が Community プラグインリスト。これらを指定しています。
最初は対象にしていたのですが、デバイスによって使える・使えないがあったりして、強制的に disable されたりして不都合が多いです。終いにファイル消えました。
ですから、これらのファイルも無視。
固有の表現まわりの設定も無視
.obsidian/appearance.json
一緒にしてもいいやと思ったら、どうも OS 毎に異なる仕様があるようです。このファイルもぎったんばっこんして、うっとうしかったので無視。
プラグイン毎のファイル
デバイス毎の recent-files も無視
.obsidian/plugins/recent-files-obsidian/data.json
これも当然と言えば当然ですね。デバイスごとに見ているファイルは異なりますから、設定だけ同期することにして、最近見たファイルのリストだけ無視。
obsidian-git も iOS, iPad OS では使わないので無視
.obsidian/plugins/obsidian-git/data.json
ゆくゆくは対象とする日がやってくるかもしれませんが、現時点では Working Copy が全てやってくれています。なので、デバイス毎に設定するよう、このファイルも無視しています。
ここまでがいわゆる設定ファイル系です。
同期されたくないノート
仕事のファイルも無視というか同期されたら困る
4[0-9]_*/
最後は、仕事用のフォルダ群です。
私のディレクトリ構成上だからということですが、ルートフォルダの頭 2桁を数字にしてフォルダを作っています。40番台のフォルダには仕事用のノートを入れるようにしています。このフォルダ構成もまだ確定はしていませんが、仕事関係は40番台としておけば、今後もそう困ることもないだろうと考えています。
ちなみに、今はこんな構成です。Salesforce っぽいですね。各フォルダの下に想定されるようなフォルダができて、更にその下に日付のファイルを作るようにしています。それらがいわゆる Activity です。
41_Accounts/
42_Opportunities/
43_Contacts/
このあたりは、まだどのようにするのが良いか手探りのところなので、良さげな構成ができたら、また共有します。
と言うことで、私の行き着いた Obsidian を git 運用するための .gitignore 集でした。