はじめに
ObsidianにLLM(特にローカルLLM)を統合する取り組みとして「Smart Composer」プラグインを導入したところ、予想以上に大容量(約300MB)のインデックスファイルが生成され、GitHubの容量制限(100MB)を超え、Git pushができなくなりました。
Markdownファイルだけを扱うシンプルな環境とは異なり、大規模ファイルを伴うLLM環境との統合では、Gitによる管理方法にも新たな課題や視点が必要であることを学びました。本記事では、同様の問題に遭遇した場合の参考として、原因・解決策・対処手順を整理しました。
発生した問題
- Obsidianに「Smart Composer」プラグインを導入し、Vault chatを利用した際、
.smtcmp_vector_db.tar.gz
という約300MBのインデックスファイルが生成された。 - このファイルがGitHubのファイルサイズ制限(1ファイルあたり100MB)を超えたため、
git push
が失敗した。
remote: error: File .smtcmp_vector_db.tar.gz is 386.97 MB; this exceeds GitHub's file size limit of 100.00 MB

解決手順
① 大容量ファイルを.gitignore
に追加
まず、今後この大容量ファイルがGitの追跡対象とならないよう、.gitignore
に追加します。
echo ".smtcmp_vector_db*.tar.gz" >> .gitignore
git add .gitignore
git commit -m "Add .smtcmp_vector_db*.tar.gz to .gitignore"
念を入れて
.smtcmp_vector_db*.tar.gz
にしています。効果あるといいんだけど……
② ローカルのGit管理対象から削除
既に追跡されている大容量ファイルをGitの管理対象から外します。
git rm --cached .smtcmp_vector_db.tar.gz
git commit -m "Remove .smtcmp_vector_db.tar.gz from Git tracking"
③ Git履歴から完全にファイルを削除
過去のコミット履歴からも大容量ファイルを削除する必要があります。
pip install git-filter-repo
git filter-repo --path .smtcmp_vector_db.tar.gz --invert-paths --force
pip install git-filter-repo
するにあたって、仮想環境は使いませんでした
※この操作でリモート設定が削除されるため、再設定が必要です。
再びプロンプトが出た場合
以下のプロンプトが出たら、N
を入力します。
Treat this run as a continuation of filtering in the previous run (Y/N)?
- 理由:以前の履歴を引き継ぐ必要がないため、履歴を完全に新しく生成します。
④ リモート(origin)を再設定
git remote add origin git@github.com:xxxx/yyyy.git
⑤ 強制的にリモートにpush
リモートリポジトリを上書きする形でpushします。
git push --set-upstream origin main --force
⑥ 最終的な同期確認
git pull
# Already up to date. となれば完了
環境
- Obsidian v1.8.9
- macOS Sequoia 15.2
- MacBook Pro (14-inch, 2021)
参考リンク
- glowingjade/obsidian-smart-composer - GitHub
- Vinzent03/obsidian-git - GitHub
- GitHubで大きなファイルをプッシュしてしまったときの対処法
- GitHub Docs: 大きなファイルを管理する
- GitHub Docs: Git Large File Storageについて
この記事は 📘Obsidian Smart Composerの巨大ファイルをGit履歴から削除 - mxt forest に基づいています。最新の情報や更新は、元の記事でご確認ください。
おわりに
Obsidianにおける(ローカル)LLMの活用は、将来的に大きな可能性を秘めています。ただし、従来のMarkdownを中心とした軽量ファイル管理とは異なり、大容量のインデックスファイルやデータベースファイルが生成されるケースがあります。こうした問題に対処するためには、Git LFSのような新しい仕組みや管理方針を採用することが必要になりそうです。
本記事が同じ問題に直面した方の助けになれば幸いです。