Gitを用いたグラフの管理
Logseqはアプリのインストール先の奥深くにGitの実行ファイルもインストールしており(注1)、アプリからはそちらが利用されます。 具体的には、Logseqのインストール先を掘った先の node_modules の dugit の下をさらに掘ってゆけばGitの実行ファイルがあると思います。
このため、以下の設定をするにあたって別途Gitをインストールする必要はありません。
手動でgitコマンドを使う場合には、Gitのインストールをおすすめします。
「設定(Settings)」>「バージョンコントロール」>「Gitの自動コミットを有効化」をオンにしてアプリを再起動すると、あなたのPCのユーザフォルダにGitリポジトリが作成されます。 https://scrapbox.io/files/685f3100fd3a20404fdc268d.png
.git (テキストファイル)
assets/ (添付ファイルの保存先)
journals/ (日誌の保存先)
logseq/ (設定ファイル、バックアップファイル、ゴミ箱ファイル)
pages/ (ページの保存先)
・・・
グラフの保存先フォルダがGitの作業ディレクトリになります。手動でGitコマンドを打つ場合はこのフォルダで打ってください。
.git というテキストファイルに、.gitフォルダの場所が記述されています。
Windowsの場合:C:\Users\ユーザ名\.logseq\git\グラフの保存先フォルダのパス名\.git
「Gitの自動コミットを有効化」をオンにすると、「Gitの自動コミット間隔」(デフォルトは60秒)に指定された時間間隔で、Logseqがグラフの保存先フォルダ内のファイル更新の有無を監視します。
監視開始後に新たにフォルダに追加されたファイルや更新されたファイルは、指定の時間間隔のタイミングで自動的に git add コマンドでローカルリポジトリへ追加された後、コミットされます。
例えば60秒の場合、ファイルを追加・更新してから遅くとも60秒以内には追加、コミットされることになります。
GitHubとの同期を検討している場合、Logseq側からのGit操作とhooksを用いたGitHub側との自動同期操作が衝突しないよう、60秒以上に設定しておくのがお勧めです。
コミットログは「Auto saved by Logseq」となります。
なお、pull や push は自動実行されません。自動実行されるのは add と commit のみです。
上記のようにGitでグラフを管理する場合、 ページ右上の「・・・」メニューから、「ページ履歴の確認」ができるようになります。この機能は、対象ページのコミット履歴に基づいて過去のページ内容を表示できます。
注意事項
💡同じグラフのウィンドウをPC上で複数を開かないようにしてください。自動コミット操作が衝突します。
GitHubとの同期
GitやGitHubのことをまだよく知らない場合、最初はいろいろ失敗するかもしれません。
Gitに慣れている人向けの話
💡 .gitignoreについて
グラフの保存先フォルダに、.gitignore ファイルも適宜設定してください。 例えば、次のファイルは.gitignoreに含めてよいかもしれません。(バックアップファイルとゴミ箱内のファイル)
logseq/bak/
logseq/.recycle
加えて、GitHubとの同期を行う場合、アップロードするファイルは50MB以下推奨、上限が100MBですので、Logseqに添付したPDFその他のファイルサイズはこれを超える可能性があります。LFSを使う方法もありますが、保存できるのは無料版GitHubで2GB、有料でも最大5GBしかないため、GitHubはそもそも100MB以上のファイルのアップロードに向いていません。
よって、assetsフォルダも.gitignoreに加えたほうがよいかもしれません。
assets/
この場合、Logseqのグラフの保存先を別途Dropbox等で同期すれば、assetsも他のPCと同期できます。
LogseqのGit機能では、作業ディレクトリと.gitディレクトリが別の場所にあります。このため、作業ディレクトリをクラウドストレージで二重管理していても、.git以下のオブジェクトに対する操作がGit側とクラウドストレージ側とで衝突することがありません。
あるいはassets以下のみクラウドストレージで同期させる設定も可能だと思います。