- 元々
content
がObsidianのvaultになっているとする content/private
以下に公開したくないファイルを置くとする- ただ、Gitで履歴は追えてほしい
- 最も簡単な方法としては、GitHubやGiteaのリポジトリ自体を非公開にしてしまうこと
- しかし、できればパブリックなノートはやはり履歴をGithubのhistoryとかに飛ばして追えるようにしたい
- なので、
content/private
をsubmoduleにして、submodule以下はプライベートリポジトリにする
リポジトリ側の準備
GitHubとかGitea上にリポジトリをプライベートで作る。
content/private以下でgit init、git remote add origin <sshのgitアドレス>
で登録、
ファイルを適当にコミットしてgit push -u origin master
。
元のリポジトリに戻ってsubmoduleを作る。
元々private以下にファイルがコミットされてる場合はgit filter-branch
で歴史上からファイルの存在を消し去る必要がある。
私はまだ試験中でprivate以下にはどうでもいいファイルしか入れてなかったのでgit rm -r --cached content/private
するだけでよかった。
一旦content/private以下のファイルが消えたら、git submodule add <sshのgitアドレス> content/private
.gitmodules
が作られる。そのままではbranchの指定がないが、しないと後でobsidianのプラグインが困ってしまうので指定しておく必要あり。
[submodule "content/private"]
path = content/private
url = <sshのgitアドレス>
branch = main
この.gitmoduleも含めてコミットする。
Obsidianの設定
obsidian-gitのプラグインには、バックアップの作成時にsubmoduleのアップデートを考慮してくれる”Update Submodule”オプションが下の方にある。これをオンにする。
あと、vaultはリポジトリ全体から見ると一つ階層が下なので、サブモジュールの相対パスがずれてしまうため、Custom base pathを../
にしなければならない。
できたらCommand Paletteから”Git: create backup”で正しくcommitとpushができてるか確認する
Quartzのテーマをいじる
quartz/components/ContentMeta.tsx
をいじってcreated date, modified dateに加えて、git historyへのURLを追加する!この辺はQuartzのDiscordに書いてあったものを参考にしたので割愛
テスト