跳至主要內容

備份與還原

保護你的 Skills,並在出錯時能夠復原。

總覽

skillshare 會自動維護備份,並提供手動的備份/還原指令。


自動備份

備份會在以下情況前自動建立:

  • skillshare sync(skill targets 與 agent targets)
  • skillshare sync agents(僅 agent targets)
  • skillshare target remove

位置: ~/.local/share/skillshare/backups/<timestamp>/(agent 備份會顯示為 <target>-agents/,與一般的 <target>/ 目錄並列)。

範圍: 只會擷取本機 target 的內容。merge-mode 的 symlink 會被略過,因為它們指向你的 Source — sync 會重新建立它們。詳見 What Gets Backed Up


手動備份

所有 Targets

skillshare backup

特定 Target

skillshare backup claude

預覽

skillshare backup --dry-run

列出備份

skillshare backup --list

輸出範例:

Backups
─────────────────────────────────────────
2026-01-20_15-30-00/
claude/ 5 skills, 2.1 MB
cursor/ 5 skills, 2.1 MB
2026-01-19_10-00-00/
claude/ 4 skills, 1.8 MB

還原

從最新的備份還原

skillshare restore claude

從特定的備份還原

skillshare restore claude --from 2026-01-19_10-00-00

預覽

skillshare restore claude --dry-run

還原做了什麼

注意: 還原之後,target 中會是實際的檔案(而非 symlink)。請執行 skillshare sync 以重新建立 symlink。


清理舊備份

skillshare backup --cleanup

移除超過設定保留期限的備份。保留機制已經會在每次 sync 後自動執行,因此這個指令僅用於按需清理。

若要檢查快照占用了多少空間:

du -sh ~/.local/share/skillshare/backups
skillshare backup --cleanup --dry-run # 預覽將會被移除的內容

備份範圍與 .gitignoreignore: 有何不同,請參閱 Backups & Disk Space


復原情境

# 若已初始化 git(建議)
cd ~/.config/skillshare/skills
git checkout -- deleted-skill/

# 或從備份還原
skillshare restore claude
skillshare sync

sync mode 設定錯誤

skillshare restore claude
skillshare target claude --mode merge
skillshare sync

想要復原最近的變更

skillshare backup --list
skillshare restore claude --from <earlier-timestamp>

復原一個 agent

Agents 有自己的備份項目(<target>-agents),流程與 Skills 相同:

# 手動備份 agent
skillshare backup agents claude

# 從最新的備份還原
skillshare restore agents claude

# 從特定時間戳記還原
skillshare restore agents claude --from 2026-01-19_10-00-00

在 Project mode 中,只有 agents 可以備份或還原 — skillshare backup -p agents 可以正常執行,但單純的 skillshare backup -p 會回傳錯誤。Project mode 的規則請參閱 backup


最佳實務

進行有風險的操作之前

skillshare backup

進行重大變更之後

skillshare push -m "Major update"  # Git 備份

每週維護

skillshare backup --cleanup

以 Git 作為備份

Git 提供了額外的備份層:

# 復原被刪除的 Skill
cd ~/.config/skillshare/skills
git checkout -- deleted-skill/

# 查看歷史紀錄
git log --oneline

# 還原到先前的 commit
git checkout <commit-hash> -- specific-skill/

另請參閱