iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Software Development

Obsidian 雙向鏈結型筆記工具研究與應用,打造屬於個人的專業知識圖譜系列 第 26

Day 26 : 插件篇 05 — 做好筆記備份,使用 Obsidian Git自動備份筆記到 Github

  • 分享至 

  • xImage
  •  

前言

我在《操作基礎篇 04 — 做好筆記備份 ,使用 iCloud 和 Google Drive 進行雙重備份》談到了使用 iCloud + Google Drive 備份筆記檔案,屬於簡單的檔案備份方式。

這 2 種方式都屬於即時備份,也就是修改筆記的當下,內容就同步到雲端硬碟上,隨時保持在最新的筆記內容。

然而這兩個備份工具也有缺點,如果你想要查詢某則筆記的特定天數前歷史紀錄 (例如 1 個月前),是非常不方便的。

備註:Google Drive 最長只能保存同一份檔案的 30 天歷史紀錄,30 天過後歷史紀錄就會被刪除。

目前免費且較方便的解決方案就是使用 Github 來進行備份」。只要在完成設定,就能讓 Obsidian 間隔 X 分鐘自動備份,將筆記的變更內容同步到 Github 上。

設定 Github 備份的方式有 2 種:使用命令列 (Command line) 和 Github 桌面軟體,這篇文章主要介紹後者,大家依樣畫葫蘆就可以成功了。

一共有 3 個步驟:

  • 步驟一、註冊及下載 Github for Desktop
  • 步驟二、為需要同步的 Vault 增加 Git 設定
  • 步驟三、安裝與設定 Obsidian Git

備註:若對命令列設定 Github 同步有興趣,可參考 Bryan Jenks 的 這篇文章

步驟一、註冊及下載 Github for Desktop

請先到 Github.com 註冊帳戶,我們將會透過 Github 同步所有筆記。

接著下載並安裝 Github for Desktop ,這樣我們就能透過桌面軟體進行 Git 指令操作,不需要透過命令列。

步驟二、為需要同步的 Vault 增加 Git 設定

假設你已經建立 Obsidian Vault (資料夾),我們需為 Vault 添加 Git 的設定,等下才能透過 Obsidian 插件自動同步。

1.在本機端添加 Git Repository 設定

開啟 Github for Desktop,點選 “Add an Existing Repository from your Hard Drive”。

選擇你的 Obsidian Vault,並點擊 Add Repository。此時系統會說「這個資料夾目前還不是 Git repository (Github 上的資料夾)」,請點擊 create a repository 建立。

Name 的資訊代表即將建立的 Git Repository 資訊,可依據個人喜好添加說明,若不想改動直接按 Create Repository 即可。

此時軟體會跳到新的頁面,我們檢查一下剛才選擇的 Obsidian Vault,可看到在本機端已經建立了 Git Repository 的設定。

備註:這些檔案預設是隱藏的,Mac 用戶可以按下 cmd + shift + . 就可以看到了。

目前我們只建立好本機端的設定,還在將此設定推送到 Github 上。

2.將 Git Repository 設定推送到 Github 上

回到 Github Desktop,我們還要點擊 Publish repository 才能將資料夾真的推送到 Github 上。

再次點擊 Publish Repository 即可推送。

3. 檢查 Github,確認 Git Repository 已建立

登入自己的 Github 帳號,點擊大頭貼 > Your repositories。

確認 Obsidian Valut 成功出現在 Github Repositories。

步驟三、安裝與設定 Obsidian Git

1.安裝 Obsidian Git

回到 Obsidian,我們需要下載 Obsidian Git 這款插件才能讓 Obsidian 自動同步。

點擊 Settings > Community plugins > 關閉 Safe mode > Browse > 搜尋「Obsidian Git」> 點擊 install。

記得在 Community plugins 打開 Obsidian Git。

2.設定 Obsidian Git

點擊左側 Obsidian Git,我們還要微調一些設定。

參考《Obsidian 上手及使用 Git 跨平台同步》這篇文章,可依據作者的建議設定:

  • 設定 Vault backup interval (minutes)

Obsidian 自動備份到 Github 的時間,可依據個人需求調整。作者建議 5 分鐘,我自己是設定 30 分鐘。

  • 設定 Commit message

你可以把 Commit 想成是要推送更新到 Github 時,都要寫一些文字說明這次的更新。

右側可加上自己的電腦名稱當作訊息識別,用預設值也可以,效果如下。

  • 開啟 Pull updates on startup

每次打開 Obsidian 時,也從 Github Pull 所有的變更。

備註:push 和 pull 是 Git 的術語。push 是指從本機端上傳更新到 Github,pull 則是從 Github 下載檔案更新到本機端。

因此 Pull updates on startup 的意思,就是每次開啟 Obsidian 時,都先從 Github 將最新的資料更新回本機端。

  • 關掉 Disable Push (Disable Push : off)

關閉後 Obsidian 才會自動把所有 Commit 推送到 Github 上,讓其他裝置可以同步。

3. 其他細節

到這邊為止已經設定好 Obsidian 自動同步到 Github 上了!但有 3 個細節需要補充說明。

  • 設定 「Obsidian Git Commit *all* changes and push to remote repository」 快捷鍵

請注意當 Obsidian 處於未開啟狀態時,插件是不會自動同步筆記到 Github 上的,因此若在關閉 Obsidian 前自動同步尚未觸發,我們必須手動推送更新。

在 Settings > Hotkeys > 搜尋 git 就可以看到「Obsidian Git Commit *all* changes and push to remote repository」,請為它設定一組快捷鍵,方便手動更新。

  • 設定 Pull from remote repository

若遇到 Obsidian 沒有自動從 Github 拉取更新到本機端的話,可以使用此指令手動拉取更新,請為它也設定一組快捷鍵,方便更新。

  • 同步發生問題時,必須開啟 Github Desktop 手動推送更新

引述《Obsidian 上手及使用 Git 跨平台同步》的說明:

即使設定了更頻繁的同步,仍有機會因不同裝置的版本不一樣,而發生同步的問題,這時我們便需要打開 Github for Desktop 解決問題。

Obsidian Git 錯誤的指示不太清晰,不過打開 Github for Desktop 就會顯示問題在哪。大多情況,Github 也是會建議暫時藏起(Stash)本機有衝突的檔案,待與 Github 同步後,再 Apply 原有的更改。

見下圖,先 Stash & Continue,然後按 Pull Origin,同步後再中間按 View Stashed,就可以按 Restore 回復原先收起的變更,最後手動 Commit 和 Push 一次就完成。如同步問題出現於同一句子,可能要手動於 Obsidian 刪去不需要的版本。

補充:Obsidian Git 同步問題與解決辦法

問題

我在使用 Obsidian 的過程中,發現 Obsidian Git 持續無法更新筆記到 Github 上。

在 Obsidian 中按下 cmd + shift + I 開啟開發者模式並查看 Console Log 後得到以下錯誤資訊:

解決辦法

需要設定 Github SSH 金鑰,詳細步驟請參考 此篇文章。文章寫得非常詳細,跟著設定即可成功。

結論

這篇文章介紹了自動將筆記備份到 Github 的方法,雖然設定過程比較複雜,但我非常推薦你能嘗試看看這個備份方法。

Github 相對於 iCloud 和 Google Drive,有比較好的檔案版本管理介面。若真的不幸要回溯筆記的歷史版本時,Github 會方便許多。


上一篇
Day 25 : 插件篇 04 — 如何讓 Obsidian 自動推薦關聯筆記 (下)?介紹我的筆記架構與 Breadcrumbs 實戰應用
下一篇
Day 27 : 插件篇 06 — 建立一套完整的筆記複習流程,使用 Obsidian 插件 Spaced Repetition
系列文
Obsidian 雙向鏈結型筆記工具研究與應用,打造屬於個人的專業知識圖譜30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言