想在電腦和 Android 端同步 Obsidian 筆記?讓 Git 幫你牽線搭橋

語言: CN / TW / HK

Matrix 首頁推薦

Matrix 是少數派的寫作社區,我們主張分享真實的產品體驗,有實用價值的經驗與思考。我們會不定期挑選 Matrix 最優質的文章,展示來自用户的最真實的體驗和觀點。

文章代表作者個人觀點,少數派僅對標題和排版略作修改。

前言

如果你使用 Android 版 Obsidian ,一個必須考慮的問題就是如何與電腦端同步筆記。

對此,誠然可以選擇官方的 Obsidian Sync 服務,或者使用 Dropbox 等第三方同步工具,但我最推薦的還是 使用 Git 同步 。理由在於:

  • 相比其他解決方案,Git 是開源的,不僅免費,而且安全性有保證;
  • 作為最先進的分佈式版本控制系統(沒有之一),用 Git 可以方便地實現版本回溯和協同編輯等功能;
  • Git 支持多種操作系統(Windows、macOS、Linux、Android、iOS),可以按需託管在國內外多家平台上(國外的 GitHubGitLab ,國內的 GiteeCODING )。

當然, 用 Git 同步的方案也有侷限 ,包括有一定的學習成本,對純新手不友好;多設備同時編輯容易產生衝突;以及需要另行手動備份存檔等。

但瑕不掩瑜,Git 仍然是我在 Windows 桌面端和 Android 端同步 Obsidian 的首選。本文就為大家介紹我的具體實現方案。

注: 行文簡潔起見,本文假定讀者掌握命令行環境的基本操作,對於 Git 的功能和機制有初步瞭解。如果你不瞭解Git,那麼本文食用起來可能會比較困難,不妨先通過 廖雪峯的 Git 教程 簡單學習後再來嘗試。)

Windows 桌面端的準備工作

第一步:安裝 Git

在開始之前,請確保自己的 Windows 系統中已經安裝了 Git。如果還沒有安裝,可以參考 廖雪峯的教程 。如果你已經安裝了,那麼可以跳過這一步。

第二步:在 Git 託管平台中新建倉庫

接下來,我們在自己選用的 Git 託管平台上新建一個筆記專用倉庫。

考慮到國內用户的訪問便捷程度和中文支持,本文將主要使用國產服務 Gitee 演示( 官網註冊鏈接 ),並簡單説明更為主流的 GitHub 平台的對應操作。

  • 如果使用 Gitee: 在頂部導航條點擊「+」>「新建倉庫」,根據提示填寫信息即可(暫不勾選給出的初始化選項)。
  • 如果使用 GitHub: 在頂部導航條點擊「+」>「New Repository」,根據提示填寫信息即可(暫不勾選給出的初始化選項)。

第三步:生成 SSH 密鑰

接着,我們需要生成一個 SSH 密鑰(SSH Key),用於在本地和遠程 Git 倉庫同步時驗證身份。

方法一:自動配置

為方便新手用户,我準備了一個配置腳本,按照如下步驟運行即可完成配置:

.txt
.sh
#!/bin/bash

splitLine="====================================================="
userName="這裏改成你的用户名"
email="這裏改成你的Email"

# 配置 git 用户名和郵箱
git config --global  user.name ${userName}
git config --global user.email ${email}
git config --global  --list 
echo "Enter 或者 y 鍵確認"
ssh-keygen -t rsa -C "${email}"

# 打印公鑰
echo "複製保存下面的公鑰添加到遠程倉庫"
echo ${splitLine}
cat ~/.ssh/id_rsa.pub
echo ${splitLine}
echo "按任意鍵退出"
read -n 1
echo "繼續運行"

注意:

  1. 如果你本地之前生成過 SSH,那麼腳本會提示你是否覆蓋,此時輸入 y 回車即可。
  2. 如果操作中途不小心關掉了腳本窗口,不要慌,雙擊重新執行腳本即可。
  3. 執行過程中會出現如下圖所示的四次提示確認步驟,簡單起見,建議大家 直接回車 不設置參數(當然如果你明白這些步驟的具體含義,也可以設置需要的參數)。

腳本執行完後, 將分割線裏面的內容複製出來保存好 。後面會用到。

方法二:手動配置

如果你希望自己動手完成配置過程,下面介紹手動配置方法,這與前述腳本是等效的。

在空白位置點擊鼠標右鍵,選擇 Git Bash (或者用你習慣的其他終端模擬器,如 Windows Terminal 等訪問 Bash 亦可):

在彈出的 Bash 窗口中,輸入下面的命令 配置用户名

git config --global  user.name 你的用户名

以及用下面的命令 配置郵箱

git config --global user.email 你的郵箱

完成前兩步後,可以用下面的命令檢查 是否配置成功

git config --global  --list

如下圖所示,如果返回的結果正確顯示了你輸入的用户名和郵箱,説明配置是正確的:

接着,輸入下面的命令 生成 SSH Key 。參考上面腳本教程的截圖,按四個回車即可。

ssh-keygen -t rsa -C "你的郵箱替換中文"

最後,用如下命令 顯示生成的公鑰 ,將其 複製出來備用

cat ~/.ssh/id_rsa.pub

第四步:上傳 SSH 公鑰

下面,我們將生成的 SSH 公鑰上傳至 Git 託管平台。

  • 對於 Gitee: 點擊導航欄右上角頭像,選擇「設置」,然後在側邊欄菜單選擇「SSH 公鑰」,填入上一步保存的公鑰內容並保存確認。
  • 對於 GitHub: 點擊導航欄右上角頭像,選擇「Settings」,然後在側邊欄菜單選擇「SSH and GPG keys」,填入上一步保存的公鑰內容並保存確認。

第五步:配置本地 Obsidian 倉庫

下面,我們在本地配置用於同步的 Obsidian 筆記文件夾。

從 Gitee 或 GitHub 網頁端訪問剛才新建的倉庫,由於尚未初始化,網頁上會展示下圖所示的配置指引:

這裏,我們按其中的「創建 Git 倉庫」一節配置。

具體而言,進入你用作 Obsidian 筆記庫的文件夾,進入後在空白處點擊右鍵進入 Bash,依次執行如下命令:

touch README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin "替換為上圖中本條命令位置提示的遠端地址(形如 [email protected]:user/repo.git)"
git push -u origin main

第六步:配置 Git 倉庫同步

完成了本地倉庫的配置,接下來要解決的就是在本地和遠端之間推送和拉取筆記文件。這裏,固然可以定期、手動通過命令行的 git 命令來同步,但那未免繁瑣。

筆者慣用的方式是使用 GitKraken 。這是一款免費、圖形界面的 Git 管理工具。

安裝後,先點擊左上角的文件夾圖標,選擇本地 Obsidian 筆記庫打開。然後即可通過工具欄按鈕快捷地同步,或者在主界面中追蹤同步歷史等。

除了用 GitKraken 外,你也可以通過 Obsidian Git 插件 ,直接在 Obsidian 內部完成倉庫的同步。

Android 端的準備工作

Android 端的配置相對簡單,除了 Obsidian app,只需要另外安裝一個 Git 客户端即可。

這裏,我推薦使用 MGit,它是筆者能找到的最符合個人需求的 app;其他的如 GitJournal 等 app 多少有些小問題。如果你有更好用的推薦,歡迎在評論區分享。

MGit 的配置步驟如下:

  1. 在設置界面的「repos 的根存儲位置」擬用於存放 Android 設備上 Obsidian 筆記的路徑:
  2. 在設置頁面,點擊「SSH Keys」>「+」,新建 SSH 密鑰;
  3. 參考前面的方法,將生成的公鑰上傳到 Gitee 或 GitHub;
  4. 從 Gitee 或 GitHub 複製 SSH Remote 地址(即上述 Windows 配置部分第五步用到的地址,也可以在倉庫主頁面點擊「下載/克隆」(GitHub 點擊「Code」)查看),填入遠程地址,點擊克隆。

成功之後,打開 Obsidian for Android。一般來説,Obsidian自動掃描到你克隆到手機的工作空間。如果沒有掃描到,那麼手動從 Obsidian 進入上述步驟設置的倉庫路徑,用作工作空間即可。

結語

細心的朋友可能已經看出來了,就是 Obsidian 的工作空間在PC和手機上都是通用的。這方面要為 Obsidian 的開發團隊點贊。

不過,個人不建議在手機端編輯文檔。因為手機端屏幕太小影響體驗和發揮,只負責查閲即可,編輯還是放到 PC 端比較好。

如果大家對本文方案有什麼更好的建議,可以在評論區提出。

關聯閲讀:

> 下載少數派客户端、關注少數派公眾號,瞭解更妙的數字生活 :leaves:

> 想申請成為少數派會員?衝!