建立日期:2026-04-03 | 分類:Claude Code / DevOps
推薦方案
Git + GitHub Private Repo
版本控制 + 雲端備份 + 跨電腦同步,一次到位。設定一次,LaunchAgent 每小時自動推送,恢復只要 git clone。
📋 一、現況
- 路徑:
~/.claude/projects/-Users-wt-PyCharmMiscProject/memory/
- 規模:24 個
.md 檔案 + daily/ 子目錄,共約 92KB
- 格式:全部純文字 Markdown,非常輕量
- 更新頻率:每個 session 都可能寫入或修改
風險:記憶檔案不在任何版本控制中,重灌系統、升級 Claude Code、或意外刪除都會導致全部遺失。使用者已經歷過一次重灌後記憶遺失。
📈 二、方案比較
| 方案 |
設定難度 |
自動化 |
跨電腦同步 |
衝突處理 |
安全性 |
恢復速度 |
| 1. Git + GitHub Private Repo 推薦 |
中等 |
✓ LaunchAgent |
✓ git pull |
✓ Git merge |
✓ Private repo |
快 git clone |
| 2. iCloud Symlink |
簡單 |
✓ 自動 |
✓ iCloud |
✗ 無 |
▲ iCloud |
快 自動 |
| 3. rsync + LaunchAgent |
中等 |
✓ LaunchAgent |
✗ 單向 |
✗ 覆蓋 |
✓ 本地 |
中 rsync |
| 4. GitHub Gist |
簡單 |
✗ 手動 |
✓ 有限 |
✗ 無 |
✓ Secret gist |
慢 手動 |
| 5. Git + iCloud 雙重 最安全 |
較高 |
✓ 雙重 |
✓ 雙通道 |
✓ Git merge |
✓ 雙備份 |
快 任一恢復 |
| 6. 放進專案 repo |
最簡單 |
✓ 隨專案 |
✓ 隨專案 |
✓ Git merge |
▲ 看 repo |
快 已在 repo |
將記憶目錄初始化為獨立 Git repo,推送到 GitHub Private Repository。
- 優點:完整版本歷史、可追溯任何時間點的記憶狀態、GitHub 加密儲存、跨電腦 git clone 即可恢復
- 缺點:需要初始設定 + LaunchAgent 自動化
- 適合:需要版本控制、多台電腦使用、想要最佳平衡的使用者
把記憶目錄 symlink 到 iCloud Drive,讓 iCloud 自動同步。
- 優點:設定最簡單(一行指令)、完全自動、跨 Apple 裝置同步
- 缺點:iCloud 偶爾有同步延遲或衝突、沒有版本歷史、symlink 可能被 Claude Code 更新破壞
- 風險:iCloud 的「最佳化儲存空間」可能把檔案變成雲端佔位符,導致 Claude Code 讀不到
- 適合:只用一台 Mac、想要最簡單方案的使用者
用 rsync 定期把記憶目錄複製到另一個位置(外接硬碟、NAS、或另一個雲端目錄)。
- 優點:單純可靠、不依賴任何雲端服務、增量備份效率高
- 缺點:單向備份(沒有同步)、需要手動設定排程、沒有版本歷史
- 適合:只需要本地備份、不需要跨電腦同步的使用者
把記憶檔案上傳為 Secret Gist。
- 優點:不需要建 repo、Secret Gist 有基本隱私
- 缺點:Gist 不支援目錄結構(daily/ 子目錄無法保持)、檔案多了管理困難、自動化麻煩
- 不推薦:記憶檔案有目錄結構,Gist 的扁平架構不適合
同時使用 Git repo 推送 GitHub,加上 rsync 到 iCloud 目錄,雙重保險。
- 優點:兩條獨立備份管道、任一失效仍有另一份、Git 提供版本歷史、iCloud 提供即時同步
- 缺點:設定較複雜、維護兩套機制、偶爾需要確認兩邊都正常
- 適合:記憶檔案非常重要、不能容忍任何遺失風險的使用者
直接把記憶目錄加進現有的專案 Git repo(例如 PyCharmMiscProject)。
- 優點:零額外設定、隨專案 push 就備份了、已有版本控制
- 缺點:記憶檔案和專案程式碼混在一起、如果 repo 是 public 會曝光個人資訊、每次 push 都帶著記憶變更
- 注意:記憶路徑在
~/.claude/ 下而非專案目錄,需要 symlink 或手動複製
- 適合:想要最低門檻、repo 是 private 的使用者
⭐ 三、推薦方案:Git + GitHub Private Repo
為什麼推薦這個方案?
- 版本歷史:每次 commit 都是一個時間點快照,可以回溯到任何歷史狀態。如果某次 session 的記憶寫壞了,直接 git revert。
- 跨電腦同步:換電腦或重灌後,git clone 一行指令就恢復全部記憶。不用手動搬檔案。
- 安全性:GitHub Private Repo 加密傳輸、存取控制。記憶檔案可能包含個人偏好等敏感資訊,Private Repo 確保只有自己能看。
- 自動化:搭配 LaunchAgent 每小時自動備份,設定一次就忘記它。
- 輕量:92KB 的純文字檔,Git 處理起來毫無壓力。即使累積一年的 daily log,也不會超過幾 MB。
- 成熟工具鏈:Git 是最成熟的版本控制工具,文件豐富、社群大、問題好排查。不依賴第三方同步服務的穩定性。
相比其他方案的決定性優勢:iCloud Symlink 雖然更簡單,但沒有版本歷史且有 symlink 被破壞的風險。rsync 沒有同步能力。Gist 不支援目錄結構。放進專案 repo 會汙染 commit history。Git + GitHub Private Repo 是功能與複雜度的最佳平衡。
🛠 四、實作步驟
Step 1
建立 GitHub Private Repo
用 GitHub CLI 建立一個私有 repo:
gh repo create claude-memory --private --description "Claude Code memory backup"
Step 2
初始化並推送記憶目錄
cd ~/.claude/projects/-Users-wt-PyCharmMiscProject/memory
git init
git remote add origin https://github.com/你的帳號/claude-memory.git
git add -A
git commit -m "Initial backup of Claude Code memory"
git branch -M main
git push -u origin main
Step 3
建立自動備份 Script
建立 ~/scripts/backup-claude-memory.sh:
MEMORY_DIR="$HOME/.claude/projects/-Users-wt-PyCharmMiscProject/memory"
cd "$MEMORY_DIR" || exit 1
if git diff --quiet && git diff --cached --quiet && [ -z "$(git ls-files --others --exclude-standard)" ]; then
exit 0
fi
git add -A
git commit -m "Auto backup: $(date '+%Y-%m-%d %H:%M')"
git push origin main
記得給予執行權限:
chmod +x ~/scripts/backup-claude-memory.sh
Step 4
建立 LaunchAgent 排程
建立 ~/Library/LaunchAgents/com.claude.memory-backup.plist,每小時自動執行:
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.claude.memory-backup</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-l</string>
<string>/Users/wt/scripts/backup-claude-memory.sh</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
<key>StandardOutPath</key>
<string>/tmp/claude-memory-backup.log</string>
<key>StandardErrorPath</key>
<string>/tmp/claude-memory-backup-err.log</string>
</dict>
</plist>
Step 5
載入 LaunchAgent
launchctl load ~/Library/LaunchAgents/com.claude.memory-backup.plist
驗證是否成功載入:
launchctl list | grep claude.memory
手動測試一次:
bash ~/scripts/backup-claude-memory.sh
Step 6
恢復方式
重灌或換電腦後,只需要:
mkdir -p ~/.claude/projects/-Users-wt-PyCharmMiscProject/
git clone https://github.com/你的帳號/claude-memory.git \
~/.claude/projects/-Users-wt-PyCharmMiscProject/memory
如果要回溯到特定時間點:
git log --oneline
git checkout <commit-hash>
💡 五、額外建議
rsync 到 iCloud 多一層保險
在 backup script 裡加一行 rsync,把記憶也複製到 iCloud Drive,雙重保險:
rsync -a --delete "$MEMORY_DIR/" \
"$HOME/Library/Mobile Documents/com~apple~CloudDocs/claude-memory-backup/"
在 CLAUDE.md 加提醒
在專案的 CLAUDE.md 加一段,提醒 Claude 記憶備份的存在:
記憶目錄已設定 Git 自動備份到 GitHub Private Repo。
恢復方式:git clone https://github.com/你的帳號/claude-memory.git ~/.claude/projects/.../memory
.gitignore 設定
如果記憶目錄有不需要備份的暫存檔,可以加 .gitignore:
.DS_Store
*.tmp
*.swp