Obsidian Git 同步設定教學:適用 Android、Windows 及 macOS
想知道怎麼用 GIthub 免費跨平台同步 Obsidian 筆記知識庫嗎?來看這篇教學就對了。
前言
以前都只有用 HackMD 跟 Notion 做筆記(其實現在也會),後來陸續嘗試各種有腦圖、大綱式的筆記軟體像是 RemNote、LogSeq 以後,最終還是覺得 Obsidian 算是本地優先(Local-first)筆記軟體裡面比較優秀的。
本地優先的好處
本地優先的筆記軟體有一大好處就是在網路不佳/斷網的時候不會像 Notion/HackMD 一樣要原地轉圈圈等待。有的時候我只是突然想起某些資訊想從我的筆記裡翻找,被網路卡個幾秒鐘想看筆記的心情都沒有了XD
壞處
任何事物都是有好有壞的,這種本地優先的筆記軟體最明顯的缺點就是只適合自己做筆記,不適合雲端協作,同步也比較麻煩一點,所以我目前都是拿 HackMD 或 Notion 跟別人協作 / 分享單篇筆記等,自己的筆記才會用 Obsidian。
還記得我剛剛說 Obsidian 這種本地筆記軟體同步比較麻煩嗎?沒關係,教學文這不就來了嗎😎。
使用條件
- 我們會使用 Github 來儲存我們的筆記(會設成 private,不用擔心筆記被別人看到),過程中需要設定 SSH Key,所以這套方案不適合不固定設備的使用者(每次都重新設定環境會比較麻煩)
- 這篇文章會教你怎麼在 Android 和 Windows 上設定同步,macOS 跟 Windows 的步驟應該大同小異,但如果你是 iOS 使用者就比較抱歉了,歡迎在留言區討論~
在 Windows 上建立 Git 倉庫並作為筆記庫
安裝並設定本地 Git
首先我們要先在電腦上安裝 Git ,請根據你的作業系統自行選擇,這裡以 Windows 為例:

打開下載的安裝檔安裝完畢後,應該可以在電腦中找到 Git Bash:

打開 Git Bash 後我們要先設定使用者名稱跟密碼,當我們把筆記同步上 Github 的時候會自帶這個資訊(必須要設定,不然會 Commit 失敗)
|
|
這一步的 username 跟 email 可以跟等等 Github 上註冊的帳號/使用者名稱不一致沒關係
將本地 Git 與 Github 連接(設定 SSH key)
接著我們要去 Github 的網站 上註冊帳號:

註冊完帳號以後點擊右上角頭像 → 選擇 Settings:


在左側找到 SSH and GPG keys:

接著點擊 SSH keys 區塊標題右側的 New SSH key:


要填寫的內容:
- Title:這個隨便取,主要是讓你自己區別每個 key 是屬於哪個裝置的,這邊建議你現在如果是在用筆電就設成像
laptop
之類的名稱(等等設定手機的時候設定android
之類的)。 - Key type:維持預設值
Authentication Key
就行。 - Key:接下來要在本機 git 中生成。
我們打開 Git Bash,輸入 ssh-keygen
:

可以看到他說 Your public key has been saved in /c/Users/<你的使用者名稱>/.ssh/...
,我們到他說的目錄去看看:

簡單來說 ssh-keygen
會生成兩組金鑰,一組是私鑰,只能放在你的電腦上(id_ed25519);另一組是公鑰(id_ed25519.pub),我們要把公鑰打開(可以用記事本或任何你喜歡的文字編輯器開啟):

把內容複製到剛剛 Github 的頁面上:

新增完我們的 key 之後就可以來創建我們的倉庫了!
創建倉庫並作為 Obsidian 筆記庫
在 Github 的網頁右上角有個 “+” 號,我們點擊他並點 New repository
接著進行設定,主要要注意這幾點:
- Repository name 可以任意取(英文、數字、-),我這裡取叫
obsidian-example
。 - 權限記得選擇 Private 而不是 Public,不然你的筆記庫就全部被看光光啦!

接著會來到這個畫面,我們先點擊 SSH 的選項後複製 SSH 的地址:

然後我們在電腦上找一個想要放置 Obsidian 筆記庫的地方,這邊以 D:\obsidian-example
舉例,我們先打開 Git Bash 並 cd
到 D:
:

接著輸入 git clone
加上剛剛複製的 SSH 連結:

成功 Clone 下來以後我們就可以在 D:
看到有個 obsidian-example
的資料夾了:

我們打開 Obsidian 軟體,並選擇這個資料夾作為 vault:


設定 Obsidian 的 Git 同步插件
成功打開筆記庫以後,現在就要來設定插件用來同步啦!

點「第三方外掛程式」→「啟用社群外掛程式」:

然後點擊「瀏覽」並搜尋 “git”:


看到的第一個插件,作者 Vinzent, (Denis Olehov) 的就是我們要裝的插件,點擊他安裝並啟用:


成功啟用後把設定頁面關掉,你會看到左側多了一個 Git 同步的選項:

我們現在來建立第一個筆記測試看看:


從上圖你會看到,右側什麼都沒有,那麼為什麼會這樣呢?
因為這個 Github Repository(倉庫)從被我們創建到現在什麼都沒有,他也不知道要把變更更新到哪裡去(如果你剛好會用 Git 的話,簡單來說現在連一條 Branch 都沒有),所以我們第一次要先用 Git Bash 自己推上去:
|
|

然後我們再對文件做一點點變更,再看看插件的狀況(修改完可以按一下右上角的 Refresh 刷新狀態):

可以看到插件已經有內容了,我們點擊最左側的 Commit-and-sync 按扭:

右下角會即時顯示狀態:

此時你在 Github 應該也可以看到更新:

到此,如果你是要在電腦之間同步,那你只需要在另一台電腦安裝 git、設定 SSH key、把 Repository git clone
下來、用 Obsidian 打開就完成了!(插件甚至不必重新安裝,因為 Obsidian 是把插件跟著你的筆記庫一起帶著走的)
介紹一下剛剛使用的同步插件的重要功能:

比較常用的是圈起來這幾個:

功能由左到右分別是:
- Commit-and-sync:推送本地變更到雲端
- Commit:儲存變更但不推到雲端(eg. 斷網的時候用)
- 把本地儲存的變更補上傳到雲端(eg. 網路恢復的時候補上傳用)
- 把雲端的變更下載下來(基本上每次打開 Obsidian 我都會做一次,避免其他裝置的變更我忘記下載下來,等等教你怎麼設定成每次打開 Obsidian 自動跑)
- Refresh:有時候插件跟你的變更狀態沒有完全一致,可以按一下刷新。
你可以在設定 → 第三方外掛程式裡面看到 Git 插件,對他進行設定:

把 Pull on startup 打開,就可以在打開 Obsidian 的時候自動從雲端拉取變更了!

當然他還有很多設定,像是每隔多少分鐘自動同步一次,這就靠各位自行去摸索了。我是比較習慣自己選擇什麼時候要上傳同步🤣。
走在路上也要捲:Android 設定
如果你不只想要在電腦上使用 Obsidian,想要能夠同步到 Android 的手機或平板上的話,就繼續看下去吧(如果你是 iOS / iPadOS 使用者可以自行上網搜尋怎麼在自己的系統上使用 git)
安裝 F-Droid、Droid-ify
我們會使用到 Termux,他是一款強大的開源終端機模擬器(可以參考 Ivon 的部落格 ),由於太過強大所以不能直接在 Google Play 上架完整版,我們要先安裝一個開源的應用程式商店 F-Droid 。

下載 .apk
檔並安裝後,打開 F-Droid 這款 App:

由於個人不太喜歡他古老經典的介面,所以我們先用他下載一個比較新版的商店 Droid-ify:



安裝 Termux、Termux:Widget
安裝好 Droid-ify 後,我們打開它並搜尋 Termux:

請安裝上圖圈起來的 Termux 和 Termux:Widget 兩個 App。
Termux:Widget 的功能是讓我們可以把 git pull 和 git push 的指令做成手機桌面上的 Widget(外掛組件),就不用打指令同步。
你可能會疑惑「不是有 Obsidian 插件嗎?」但那款插件在手機上支援度不完全,所以我們採用別的方法在手機上同步。
更新套件並安裝必要插件
打開 Termux 輸入以下指令更新套件:
|
|
然後我們需要安裝 openssh
、git
套件,當然也要像電腦端一樣進行 git 設定:
|
|
設定 SSH key
其實跟電腦端設定差不多,一樣是用 ssh-keygen
指令生成 key:
|
|
生成 key 以後要 cd
到 key 存放的目錄 ~/.ssh
,並把有 .pub
結尾的公鑰檔案的內容複製下來,可以用以下指令找到檔案:
|
|

可以看到我們要找的檔案是 id_ed25519.pub
,我們用 cat
指令把它印出來:
|
|
然後你應該會在畫面上看到你的公鑰,這邊就不截圖了,跟電腦端示範的時候一樣,複製起來並到 Github 網站上面新增 SSH key,輸入進去。
Tips: 還記得我們說過 ssh-keygen 產生的是一組私鑰、一組公鑰嗎?基本上私鑰只會在你的手機/在你的電腦(也就是打
ssh-keygen
的裝置上)才有,公鑰被別人知道則是沒什麼問題。所以你如果要用 LINE 之類的通訊軟體把 key 丟到電腦上,用電腦在 Github 的網站上設定是沒問題的喔!
讓 Termux 讀得到手機檔案
Termux 內部算是一個虛擬的空間,跟 Android 原本是隔開的,這樣我們手機版 Obsidian 沒辦法正常讀取我們同步下來的筆記庫。
所以我們現在要讓 Termux 可以讀寫手機內部的儲存空間,直接讓 Termux 把筆記同步在手機目錄下,Obsidian 就能讀了!
在 Termux 中打:
|
|
此時可能會跳出視窗,問你允不允許 Termux 存取手機空間,請點擊「是」
如果不小心點到「否」,也可以再從手機的設定 → 應用程式 → 找到 Termux,把存取檔案空間的權限打開。
成功打開權限以後我們可以發現手機的檔案被掛載在 ~/storage/shared/
底下:

從 Github 上面抓取我們的筆記庫
我們一樣到 Github 上複製 SSH 的連結:

我希望我們的筆記庫放在 手機內部儲存空間/Obsidian/obsidian-example
,所以我們先創 Obsidian
這個資料夾:
|
|
接著進入 obsidian 資料夾裡面 git clone
我們剛剛複製的 Github 連結:
|
|

用手機版 Obsidian 開啟
在我們設定同步腳本之前,因為我們已經把目前的筆記庫抓下來了,其實可以先用 Obsidian 打開筆記庫看看效果:
選擇 “Use my existing vault”:

選擇 “On this device”:

還記得我們剛剛把筆記抓到哪嗎?obsidian/obsidian-example
,選到這資料夾並選擇「使用這個資料夾」:

點擊「允許」:

有可能會問你允不允許插件,當然是打開,沒有插件的 Obsidian 就沒有靈魂了😎:

接著你應該就能看到自己筆記庫裡的內容了!不過我建議把 Git 插件設定成 “disable on this device”,畢竟我們手機端沒有打算用它同步,乾脆不要讓這個插件在手機上運作:

點擊「第三方外掛程式」:

然後點開 Git 插件的設定,並把 “Disable on this device” 打開:


手機同步 Widget
終於來到最後一個部分了,我們新增一些腳本,同步的時候才不要手動打開 Termux 打指令!
首先我們 cd
到家目錄,並創一個 .shortcuts
資料夾然後進去(資料夾名稱一定要一模一樣):
|
|
然後我們輸入 nano Pull
來創建一個叫 Pull
的檔案,輸入後會進入 Nano 的介面:

很重要很重要的一點,這攸關你怎麼退出 Nano,那就是:
畫面底部那些按鍵提示的
^
代表的是 Ctrl 鍵,所以舉例他寫 Exit 的按鍵是^X
所以退出要按一下 Termux 給你的 CTRL,再按鍵盤大寫X
!
既然你知道怎麼退出了,那在退出前來輸入 Pull
的腳本吧:
|
|
然後按 Ctrl + X 左檔,他可能會問你是否要存檔、存成什麼檔名,就選 Yes 就對了。
接著是 Push 的腳本:
|
|
兩個腳本都存好檔後,我們就可以回到手機桌面,新增一個外掛程式:


新增完 Widget 以後如果沒有如圖看到 Pull
跟 Push
兩個選項,可以按一下 Widget 右上角的 Refresh 鍵:

結語:日常工作流
在處理完這些設定以後我們日常的工作流就變得非常輕鬆了:
- 電腦打開 Obsidian 會自動拉取雲端的變更 → 做筆記 → 做完筆記記得要按 Commit-and-Sync 推到雲端。
- 平板/手機先按一下桌面上的 Pull 拉取變更 → 打開 Obsidian 閱讀/編輯筆記 → 做完筆記關掉 Obsidian → 按桌面的 Push 同步變更到雲端。