TL;DR
- Git = 有記憶的資料夾。每次存檔(commit)就是幫整個 vault 拍一張快照,隨時可以翻回去。
- 在 GitHub 開一個私有(Private)倉庫當中繼站,兩台電腦各自對它上傳、下載。
- 每天的動作只有兩個:開工前
git pull、收工前git push。
Git 是什麼?一個會記得每次改動的資料夾
先把工程術語翻成白話:
- Git=一套幫資料夾記錄「每次改了什麼」的工具,裝在你自己的電腦裡。
- 倉庫(repository,簡稱 repo)=被 Git 管起來的那個資料夾。你的 vault 就是它。
- commit=存一次檔並附上一句說明,等於幫整個資料夾拍一張快照。
- push=把你這台電腦累積的快照上傳到中繼站。
- pull=把中繼站上別台電腦推上去的改動下載回來。
- GitHub=放這個中繼站的網站,個人開私有倉庫是免費的。
整個機制長這樣——注意:不是「檔案存在雲端、電腦只是看」,而是每一台都有一份完整副本,連歷史都完整。這正是課程說的「檔案櫃必須是你的」:就算 GitHub 明天關站,你兩台電腦裡的東西一個字都不會少。
值得學嗎?先把好處與代價攤開來看
✔ 為什麼值得學
- ① 免費。Git 本身免費,GitHub 個人開私有倉庫也不用錢。不必再多一筆訂閱。
- ② 有版本歷史,誤刪救得回來。不小心刪掉整個資料夾、AI 把筆記改壞了,都能翻回上一張快照。
- ③ AI 動過什麼,diff 一看就知道。diff=兩個版本的逐行差異,新增的一行、刪掉的一行都標得清清楚楚。這正是課程講的第三件事:驗收——你怎麼帶人,就怎麼帶 AI:講清楚、給邊界、驗收。
- ④ 順便就是異地備份。公司電腦、家裡電腦、GitHub 上各一份,三份同時消失的機率極低。
△ 代價(先知道再決定)
- ① 要處理衝突。兩台電腦改到同一份筆記的同一段,Git 不會幫你決定留哪個,得你自己選。(第 07 節教你怎麼看)
- ② 初次設定較麻煩。裝 Git、開倉庫、接起來,第一次大概要花半小時到一小時。之後每天只剩兩個指令。
- ③ 不適合塞大量影片、大圖。Git 會為每一個版本各存一份,大檔案改幾次就把倉庫撐爆。大素材請放雲端硬碟,vault 裡只放連結。
動手做:三段就接起來
下面所有黑底視窗都是終端機(Terminal)——在裡面打字下指令的介面。macOS 用「終端機 Terminal」,Windows 用「Git Bash」或「命令提示字元」。黃色的部分是要換成你自己的東西,灰色 # 開頭的是說明文字,不用打。
① 確認 Git 裝了沒
打開終端機,貼上這行。有看到版本號就代表已經有了。
$ git --version git version 2.39.5 # 有出現版本號=已經裝好了
macOS:如果跳出「要安裝命令列開發者工具嗎」的視窗,按「安裝」讓它裝完 Xcode 命令列工具即可,裝完再打一次上面那行。
Windows:如果說「不是內部或外部命令」,到 Git 官網下載安裝 Git for Windows,一路預設下一步,裝完把終端機關掉重開再試。
② 告訴 Git 你是誰
每張快照都會署名,所以要先設定名字與 Email(只需設一次,之後所有倉庫共用)。
$ git config --global user.name "你的名字" $ git config --global user.email "你的Email"
③ 在 GitHub 開一個私有倉庫
到 GitHub 註冊/登入,建立一個新的倉庫(New repository):
- 名稱可以取
second-brain之類,自己看得懂就好。 - Visibility 一定要選 Private(私有)。這是本篇唯一一條紅線,第 08 節會再講一次為什麼。
- 初始化選項(README、.gitignore、License)全都不要勾——保持全空,等一下才不會跟你電腦上的內容打架。
- 建好之後,把頁面上那串倉庫網址複製起來備用(形如
https://github.com/你的帳號/second-brain.git)。
① 先走進 vault 資料夾
cd=change directory,切換到某個資料夾。小技巧:打完 cd (記得留一個空格),直接把 vault 資料夾從 Finder/檔案總管拖進終端機視窗,路徑會自動填好,不用自己打。
$ cd /你的/vault/路徑/我的第二大腦 $ pwd # 印出目前位置,確認站對地方了 /Users/you/Documents/我的第二大腦
② 開始用 Git 管這個資料夾
git init=在這個資料夾裡開一本帳,從現在起它的每次改動都會被記錄。這行只會多出一個隱藏的 .git 資料夾,你的筆記一個字都不會動。
$ git init Initialized empty Git repository in .../我的第二大腦/.git/
③ 寫 .gitignore(先做這一步,別跳過)
有些檔案不該同步,要先列進黑名單,不然兩台電腦會天天打架。完整內容與逐行理由在下一節 // 04,請先過去把檔案建好再回來。
④ 拍下第一張快照,推上 GitHub
四個指令的白話:add .=把這個資料夾裡所有改動挑進待存區;commit -m=存檔並附一句說明;branch -M main=把主線命名為 main(跟 GitHub 一致);remote add origin=告訴 Git 中繼站在哪;push -u=上傳並記住這條路,之後只要打 git push。
$ git add . $ git commit -m "第一版:我的第二大腦" $ git branch -M main $ git remote add origin https://github.com/你的帳號/second-brain.git $ git push -u origin main Enumerating objects... done. branch 'main' set up to track 'origin/main'.
第一次 push 會請你登入 GitHub,照著終端機或瀏覽器跳出的官方登入流程走完即可。推完之後回 GitHub 網頁重新整理,應該就會看到 0_收件匣、1_專案、AGENTS.md 這些熟悉的東西躺在上面了。
① clone:整包複製下來
clone=複製一份。先 cd 到你想放置的位置(例如「文件」資料夾),再執行。它會自動建立一個同名資料夾。
$ cd ~/Documents $ git clone https://github.com/你的帳號/second-brain.git Cloning into 'second-brain'... done.
② 用 Obsidian 打開它
打開 Obsidian → 開啟資料夾作為 vault(Open folder as vault) → 指到剛剛 clone 下來的那個資料夾。因為 vault 就只是一個普通資料夾,這一步不需要匯入、不需要轉檔,打開就是。
這台電腦的外掛可能要重裝、Claudian 的 CLI 路徑要重填——這是刻意的,因為那些設定是「這台電腦的」,我們在 .gitignore 裡把它排除了。筆記內容才是要同步的資產。
③ 之後每天就兩個動作
見下一頁的「每日節奏」——開工前 pull、收工前 push,養成習慣就不會出事。
.gitignore:先講好哪些檔案不要同步
.gitignore=一張黑名單,寫在裡面的檔案 Git 會完全當作沒看到。在 vault 的最上層(跟 AGENTS.md 同一層)建立一個叫 .gitignore 的檔案,把下面整段貼進去存檔。
檔名以點開頭的檔案在 Finder/檔案總管裡預設是隱藏的。最省事的做法:在 Obsidian 裡請 AI 幫你建(「在 vault 根目錄建立 .gitignore,內容如下……」),或用 VS Code、記事本另存新檔。
.obsidian/workspace.json .obsidian/workspace-mobile.json .obsidian/plugins/*/data.json .claudian/ .trash/ .DS_Store Thumbs.db
每一行為什麼要排除:
| 這一行 | 它是什麼 | 為什麼不同步 |
|---|---|---|
.obsidian/workspace.json |
記錄「你這台電腦開了哪些分頁、面板怎麼排」。 | 最重要的一行。兩台電腦的螢幕大小、開的分頁一定不一樣,不排除的話每天都在為它打架。 |
.obsidian/workspace-mobile.json |
同上,但是手機/平板版的版面配置。 | 理由一樣。手機版面跟桌機版面本來就該長得不同。 |
.obsidian/plugins/*/data.json |
各個外掛的個人設定。*=任何外掛。 |
裡面常存著「這台電腦的」路徑,例如 Claudian 的 Codex CLI 路徑。同步過去反而會把另一台弄壞。 |
.claudian/ |
Claudian 的對話暫存資料夾。 | 那是工作過程,不是成果。成果早就寫進 9_AI產出 了,暫存不必跨裝置。 |
.trash/ |
Obsidian 的垃圾桶。 | 你都刪掉了,沒必要再上傳一份、還讓另一台跟著長出垃圾桶。 |
.DS_Store |
macOS 偷偷放在每個資料夾裡的排列記錄。 | 純系統垃圾檔,每開一次資料夾就變一次,會讓你的歷史紀錄充滿雜訊。 |
Thumbs.db |
Windows 的圖片縮圖快取。 | 同上,系統自己生的暫存檔,沒有保存價值。 |
.obsidian/ 本身要留著。我們只排除裡面那幾個「跟這台電腦綁定」的檔案,主題、外掛清單、你的偏好設定仍然值得同步——這樣第二台電腦打開時,外觀和你熟悉的一模一樣。
每日節奏:只有兩個動作
接好之後,Git 的日常就縮成一句口訣:開始前先拉,離開前先推。把它當成進辦公室開燈、離開時關燈一樣的固定動作。
先把另一台的改動拉下來
坐下來、還沒開始打字之前先執行。這一步能避免九成的衝突。
把今天的成果推上去
合上筆電之前執行。說明文字寫給未來的自己看,寫「今天」也行,寫「整理完客戶 A 會議記錄」更好。
&& 是什麼?它是「前一個成功了就接著做下一個」的意思。所以那一長串等於:把所有改動挑起來 → 存檔並寫說明 → 上傳。你也可以拆成三行分開打,效果一樣。
想確認 AI 到底動了什麼?
在 commit 之前先看一眼差異,這就是課程講的「驗收」動作實體化:
$ git status # 哪些檔案被改了、哪些是新增的 $ git diff # 逐行看:+ 是新增的行,- 是刪掉的行 $ git log --oneline # 一行一張快照,看過去做過什麼
離開檢視畫面的方法:diff 和 log 內容太長時會進入翻頁模式,用上下鍵捲動,按 q 離開。
自動化:讓 Obsidian 自己 pull 和 push
指令打熟之後,可以把它交給外掛做背景作業。Obsidian 社群外掛裡有一個就叫 Git(外掛 id obsidian-git,作者 Vinzent03)。
安裝路徑:設定(Settings)→ 社群外掛(Community plugins)→ 瀏覽(Browse)→ 搜尋 Git → 安裝(Install)→ 啟用(Enable)。若你的 vault 還沒開放社群外掛,要先關閉安全模式/Turn on community plugins。
它能幫你做的,就是把上一節那兩個動作變成自動的:
※ 以上為功能示意,實際選項名稱與版面以你安裝到的版本為準。
⚠ 行動裝置的限制,先講清楚
這個外掛在手機/平板上的 Git 支援相當有限,官方說明直接寫著行動版的 Git 實作很不穩定、不建議在行動裝置上使用;限制包含不支援 SSH 登入、倉庫大小受記憶體限制等,記憶體較小的裝置可能當掉。
實務建議:把桌機當主力,手機只用來讀、用來丟東西進 0_收件匣。iOS 上若真的要跑 Git,常見做法是另外搭一個支援 Git 的 App(例如 Working Copy)來處理同步;行動端的同步方式請自行評估,不要把它當成第二大腦的主要保命繩。
衝突了怎麼辦?非工程師版心法
做到這一條,你可能一整年都不會遇到衝突。衝突幾乎都發生在「忘了 push 就換另一台繼續寫」。
真的衝突了也不用慌。Git 的處理方式其實很老實:它不會替你決定,而是把兩個版本原封不動都留在檔案裡,然後標記起來讓你自己選。打開那個檔案,你會看到這樣的東西:
<<<<<<< HEAD - 客戶 A 決議:報價延到下週三提出。 ======= - 客戶 A 決議:報價延到下週五提出,先補一版簡報。 >>>>>>> origin/main
- <<<<<<< HEAD 到 ======= 之間=你這台電腦上的版本。
- ======= 到 >>>>>>> origin/main 之間=從 GitHub 拉下來的版本(另一台寫的)。
- 你要做的事只有一件:決定留哪一半——或把兩邊合成一句你要的話。
- 然後把那三行標記(<<<<<<<、=======、>>>>>>>)全部刪掉,讓檔案回到正常的樣子。
- 存檔,然後照常
git add .→git commit -m "解決衝突"→git push,就結束了。
改完後的樣子,就是一份乾淨的筆記:
- 客戶 A 決議:報價延到下週五提出,先補一版簡報。
git log --oneline 找到好的那張快照,永遠回得去。
紅線:倉庫一定要是 Private
⛔ 這一條做錯,等於把公司內部資料丟上網
建立 GitHub 倉庫時,Visibility 一定要選 Private(私有)。選成 Public(公開)的話,全世界任何人——包含搜尋引擎——都看得到你的第二大腦。
而你的第二大腦裡有什麼?會議記錄、人物卡、報價、客戶的來龍去脈、老闆說過的話。這些東西一旦上網,撤不回來。
建立時如果不小心選錯,到倉庫的 Settings 裡可以改成 Private——但只要曾經公開過,就當作已經外流,該通知的、該換的(例如任何寫在筆記裡的密碼、金鑰)都要處理。最保險的做法:建立當下就選對。
三種同步方案,選一個就好
Git 不是唯一解,也不是最好的解——它是「有版本歷史」這個需求的解。三種方案攤開比一比:
| 比較項目 | Obsidian Sync | 雲端硬碟 (iCloud · Dropbox · OneDrive) |
Git + GitHub |
|---|---|---|---|
| 費用 | 官方付費訂閱 | 多半有免費額度,超過才付費 | 免費(個人私有倉庫不收費) |
| 難度 | 最低。登入、開啟同步就完成 | 低。把 vault 放進同步資料夾即可 | 高。要記幾個指令,第一次設定要花時間 |
| 版本歷史 | 官方服務內建,細節依方案而定 | 只有檔案層級的還原,沒有「這次改了哪幾行」的語意 | 完整。每次 commit 都是一張快照,diff 逐行可查 |
| 衝突風險 | 低,官方替你處理 | 高。.obsidian 特別容易打架,常冒出「衝突副本」檔案 |
中。會明確告訴你哪裡撞到,但要你自己決定留哪半 |
| 加密/隱私 | 官方標榜端對端加密 | 看各家服務的政策 | 倉庫設 Private 才安全(見第 08 節) |
| 適合誰 | 想花錢換省心、手機桌機都要順的人 | 只有一台主力電腦、手機偶爾看看的人 | 兩台以上電腦工作、想驗收 AI 改了什麼、想要完整備份保險的人 |
疑難排解
| 症狀 | 原因 | 怎麼修 |
|---|---|---|
打 git 說「command not found」或「不是內部或外部命令」 |
Git 沒裝,或裝了但終端機還沒認得它。 | macOS 依提示安裝 Xcode 命令列工具;Windows 安裝 Git for Windows。裝完把終端機整個關掉重開再試。 |
push 被拒絕,訊息裡有 rejected 或 non-fast-forward |
GitHub 上已經有你這台還沒拿下來的改動(多半是另一台先推了)。 | 先 git pull,若有衝突照第 07 節處理,處理完再 git push。 |
git commit 之後跳進一個看不懂、打字沒反應的畫面 |
忘了加 -m "說明",Git 幫你開了文字編輯器要你寫說明。 |
按 Esc,接著打 :q! 再按 Enter 離開,然後重打一次帶 -m "說明" 的完整指令。 |
檔案裡冒出 <<<<<<<、======= 這種怪符號 |
兩台電腦改到同一份筆記的同一段,發生衝突。 | 不是壞掉,是 Git 把兩個版本都留給你了。照第 07 節挑一半留下、刪掉標記、再 commit。 |
| 每次換電腦,Obsidian 的分頁和版面就被洗掉 | workspace.json 被同步了。 |
把它補進 .gitignore,然後執行 git rm --cached .obsidian/workspace.json 讓 Git 停止追蹤它(檔案本身不會被刪),再 commit、push。 |
git commit 回你 nothing to commit |
這次真的沒有任何檔案變動。 | 正常現象,不用理它,直接 git pull 或關機下班都行。 |
| 倉庫越來越肥、push 越來越慢 | 把大量影片、大圖放進 vault 了;Git 會為每個版本各留一份。 | 大素材改放雲端硬碟,vault 裡只留連結;或把該資料夾加進 .gitignore。 |
| 手機上的 Git 外掛常當掉、同步失敗 | 行動裝置上的 Git 支援本來就有限(見第 06 節)。 | 手機不要當主力,改成只讀;寫入集中在桌機。 |
| 第二台電腦打開 vault,外掛設定不一樣 | 正常。那些「綁定這台電腦」的設定被 .gitignore 排除了。 |
在這台重新填一次即可(例如 Claudian 的 CLI 路徑)。這是刻意的設計,不是故障。 |
一頁帶走的小抄
- Git = 有記憶的資料夾。commit 是拍快照,push 是上傳,pull 是下載。
- 每天只有兩句話:開工
git pull;收工git add . && git commit -m "今天" && git push。 - 倉庫一定 Private。會議記錄、人物卡、報價都在裡面,公開等於外流。
- 先寫 .gitignore 再 commit。尤其
.obsidian/workspace.json,不排除就天天打架。 - 一次只在一台裝置編輯。衝突九成來自「忘了 push 就換電腦」。真衝突就看
<<<<<<<標記,留一半、刪標記、再 commit。 - 驗收 AI 就用
git diff。它改了哪幾行,一行都藏不住——這就是「講清楚、給邊界、驗收」的最後一步。