【Obsidian 使用教學】插件篇 04 — 做好筆記備份,使用 Obsidian Git自動備份筆記到 Github

朱騏
PM的生產力工具箱
15 min readAug 10, 2021

--

前言

我曾在《【Obsidian 使用教學】基礎篇 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 跨平台同步. Zettelkasten 卡片盒筆記方法 | by Samuel Wong | 螢幕前/黃頌朗 | Medium

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

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

圖片來源:Obsidian 上手及使用 Git 跨平台同步. Zettelkasten 卡片盒筆記方法 | by Samuel Wong | 螢幕前/黃頌朗 | Medium

結論

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

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

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

2021.09.22 更新「問題1」 的解法已經不適用。若還要使用 Obsidian Git 自動備份筆記資訊到 Github 上,請參考 問題2 的解法。原因為 Github 在 2021.08.13 淘汰了「將帳號、密碼寫入本機端」的驗證方式,詳細資訊請見下方。Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates.

問題 1

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

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

參考《Pull Failed: No such device or address · Issue #23 》,網友回答是因為我們沒有在電腦中為 Obsidian 設定存取 Github 的使用者名稱 (username) 和信箱 (user email)。

如果你也有相同的問題,以下是我找到的解決方法。

解決辦法 (已無法使用)

首先我們先要將個人登入 Github 的資訊設定在本機端中。

參考《Setting your commit email address — GitHub Docs》和《Setting your username in Git — GitHub Docs》,我們必須開啟電腦的終端機 (Terminal) 來設定。

設定完畢後,我們還必須將此帳號密碼儲存在 Git 當中,設定方法可參考《credentials — How to save username and password in Git? — Stack Overflow》。

以上都設定完畢後,Obsidian Git 就能正常執行了!

問題 2

由於問題 1 的解決辦法已經被 Github 官方淘汰掉,因此我們要使用另一種方法來解決 「Obsidian Git 無法同步到 Github」 的問題。

解決辦法

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

目前我推出了「Obsidian 學習包」課程,我設計了 21 堂課程來解說 Obsidian 的核心功能,並且舉一個實際流程 (怎麼寫日記) 來結合 21 堂課的內容。

👉 有興趣購買 Obsidian 學習包的朋友,歡迎點擊 表單購買

目前我也有提供 1 對 1 的 Obsidian 付費個人諮詢,幫助學員從 0 到 1 打造自己的網狀筆記系統,提升自己的創作產出。

其他 Obsidian 文章

1. 基礎篇 | Obsidian 全新手從這裡開始讀

2. 觀念篇 | 要讓 Obsidian 變得好用,先來了解背後的方法論

3. 筆記篇 | 開始在 Obsidian 中建立個人的網狀連結筆記系統

4. 插件篇 | 增強 Obsidian 功能的秘密武器

5. 整理篇 | Obsidian 資源彙整

6. 問答篇 | Obsidian 常見問題與答案

▶︎ 關於文章1/ 歡迎訂閱 我的電子報 獲得實用的生活與工作技巧,每週二中午 12:00 準時發刊2/ 想要掌握最新文章,可以點擊下方「Follow」我~3/ 如果你覺得文章寫的不錯,可以對文章拍手讓我知道 👏🏻▶ 關於我我是朱騏,一個組織能力超強的軟體產品經理,喜歡研究各種生產力工具、時間管理方法。1/ 我可以提供產品管理、時間管理、生產力工具的「個人問題諮詢」與「講座邀約」。2/ 若是個人諮詢,可以請我喝杯咖啡、吃頓晚餐,可透過 Email/ Facebook 跟我約時間,請參考「聯繫方式」。 (由於疫情期間無法實體碰面,可以幫我分享一篇你最喜歡的文章到個人社群平台上,分享後透過 Email/Facebook 告訴我即可)3/ 若是講座邀約,請直接使用 Email 聯繫。︎▶︎ 聯繫方式- 📪 Email:muhenry608@gmail.com- 💬 Facebook:請先加我個人好友並簡短說明想要諮詢的主題▶︎ 建立人脈歡迎使用 LinkedIn 與我交流,你可以「加我為好友」建立連結| LinkedIn @ Chi Chu 歡迎交流

--

--

朱騏
PM的生產力工具箱

線上寫作教練,擁有 6 年的 SaaS 產品經理 & 2 年軟體技術寫手工作經驗。我專注寫 (1)技術寫作 (2)數位寫作 (3) 個人知識管理的文章 🤝 歡迎講座邀約、諮詢,可參考 www.chichu.co/training