Claude Code 記憶備份方案

← 首頁

建立日期:2026-04-03 | 分類:Claude Code / DevOps

推薦方案

Git + GitHub Private Repo

版本控制 + 雲端備份 + 跨電腦同步,一次到位。設定一次,LaunchAgent 每小時自動推送,恢復只要 git clone。

📋 一、現況

風險:記憶檔案不在任何版本控制中,重灌系統、升級 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

1. Git + GitHub Private Repo 推薦

將記憶目錄初始化為獨立 Git repo,推送到 GitHub Private Repository。

  • 優點:完整版本歷史、可追溯任何時間點的記憶狀態、GitHub 加密儲存、跨電腦 git clone 即可恢復
  • 缺點:需要初始設定 + LaunchAgent 自動化
  • 適合:需要版本控制、多台電腦使用、想要最佳平衡的使用者

2. iCloud Symlink

把記憶目錄 symlink 到 iCloud Drive,讓 iCloud 自動同步。

  • 優點:設定最簡單(一行指令)、完全自動、跨 Apple 裝置同步
  • 缺點:iCloud 偶爾有同步延遲或衝突、沒有版本歷史、symlink 可能被 Claude Code 更新破壞
  • 風險:iCloud 的「最佳化儲存空間」可能把檔案變成雲端佔位符,導致 Claude Code 讀不到
  • 適合:只用一台 Mac、想要最簡單方案的使用者

3. rsync + LaunchAgent

用 rsync 定期把記憶目錄複製到另一個位置(外接硬碟、NAS、或另一個雲端目錄)。

  • 優點:單純可靠、不依賴任何雲端服務、增量備份效率高
  • 缺點:單向備份(沒有同步)、需要手動設定排程、沒有版本歷史
  • 適合:只需要本地備份、不需要跨電腦同步的使用者

4. GitHub Gist

把記憶檔案上傳為 Secret Gist。

  • 優點:不需要建 repo、Secret Gist 有基本隱私
  • 缺點:Gist 不支援目錄結構(daily/ 子目錄無法保持)、檔案多了管理困難、自動化麻煩
  • 不推薦:記憶檔案有目錄結構,Gist 的扁平架構不適合

5. Git + iCloud 雙重備份 最安全

同時使用 Git repo 推送 GitHub,加上 rsync 到 iCloud 目錄,雙重保險。

  • 優點:兩條獨立備份管道、任一失效仍有另一份、Git 提供版本歷史、iCloud 提供即時同步
  • 缺點:設定較複雜、維護兩套機制、偶爾需要確認兩邊都正常
  • 適合:記憶檔案非常重要、不能容忍任何遺失風險的使用者

6. 放進專案 repo

直接把記憶目錄加進現有的專案 Git repo(例如 PyCharmMiscProject)。

  • 優點:零額外設定、隨專案 push 就備份了、已有版本控制
  • 缺點:記憶檔案和專案程式碼混在一起、如果 repo 是 public 會曝光個人資訊、每次 push 都帶著記憶變更
  • 注意:記憶路徑在 ~/.claude/ 下而非專案目錄,需要 symlink 或手動複製
  • 適合:想要最低門檻、repo 是 private 的使用者

三、推薦方案:Git + GitHub Private Repo

為什麼推薦這個方案?

相比其他方案的決定性優勢: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

#!/bin/bash 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,每小時自動執行:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <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/ # Clone 回來 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

# .gitignore .DS_Store *.tmp *.swp