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