基于 Git 的 OpenClaw 系统配置变更版本控制。提供两项核心能力:(1)SAVE —— 在执行敏感操作前创建检查点……
Git 版本控制 QQ OpenClaw 配置保护是一项面向实际任务的技能,主要用于保护您的 OpenClaw 环境, 并配备基于 git 的检查点和回滚能力;Overview.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过基于 Git 的检查点与回滚能力,保障您的 OpenClaw 环境安全。
OpenClaw 配置目录(~/.openclaw/)本身即为一个 Git 仓库。本能力为系统配置变更提供安全、可靠的版本控制支持。
受保护的文件包括:
workspace/SOUL.md、AGENTS.md、USER.md、IDENTITY.mdworkspace/skills/ —— 已安装的技能workspace/memory/ —— 记忆文件openclaw.json —— 主配置文件cron/jobs.json —— 定时任务配置排除在版本控制之外的文件:
*.jsonl、*.jsonl.lock)*.sqlite)在执行敏感变更前创建一次 Git 提交,作为可恢复的基准状态。
适用场景:
命令流程:
cd ~/.openclaw
# 查看当前状态
git status
# 添加所有已跟踪文件(遵循 .gitignore 规则)
git add -A
# 使用描述性消息创建提交
git commit -m "checkpoint: {待执行变更的简要说明}"
实现逻辑:
当用户说:"save before..." 或 "create checkpoint"
1. 基于上下文生成具有描述性的提交消息
2. 执行:git add -A
3. 执行:git commit -m "checkpoint: {描述}"
4. 向用户报告提交哈希值及变更文件数量
示例:
User: "Save before I install a new skill" Action: git add -A git commit -m "checkpoint: before installing new skill" Output: "✓ Checkpoint created: abc1234 (5 files changed)"
当系统出现异常时,回退至之前的某个提交版本。
适用场景:
回滚选项:
| 选项 | 命令 | 效果 |
|---|---|---|
| 软重置 | git reset --soft HEAD~1 |
撤销提交,但保留已暂存的更改 |
| 混合重置 | git reset --mixed HEAD~1 |
撤销提交,保留未暂存的更改 |
| 硬重置 | git reset --hard HEAD~1 |
彻底撤销提交及其所有更改 |
推荐默认方式:--hard(用于完整回滚)
实现逻辑:
当用户说:"rollback" 或 "undo last change" 或 "restore previous"
1. 展示最近若干次提交供用户选择
git log --oneline -10
2. 确认目标提交版本
"Rollback to commit X? This will discard: {列出将被丢弃的变更}"
3. 执行回滚
git reset --hard {commit-hash}
4. 报告结果
"✓ Rolled back to commit abc1234"
示例:
User: "Rollback to before the skill installation" Action: git log --oneline -5 # 显示如下: # abc1234 checkpoint: before skill install # def5678 previous config git reset --hard abc1234 Output: "✓ Rolled back to 'before skill install' (abc1234)"
# 查看最近 10 条提交 git log --oneline -10 # 查看上一次提交中具体变更了哪些文件 git show --stat HEAD # 对比当前工作区与最新提交之间的差异 git diff HEAD
# 查看未提交的变更 git status # 查看差异摘要 git diff --stat
当前纳入版本控制(Git 跟踪)的文件列表:
git ls-files
确保 ~/.openclaw/.gitignore 正确排除易变或敏感文件:
# 会话日志(易变) *.jsonl *.jsonl.lock *.jsonl.reset.* # 数据库(易变) *.sqlite *.sqlite-journal # 凭证(敏感) credentials/ *.pem *.key # 临时文件 *.tmp *.temp .DS_Store # 日志 logs/ # 投递队列 delivery-queue/
User requests sensitive operation
↓
Is SAVE needed?
┌─────┴─────┐
Yes No
↓ ↓
SAVE first Execute directly
↓
Execute operation
↓
Success?
┌─────┴─────┐
Yes No
↓ ↓
Done ROLLBACK?
┌─────┴─────┐
Yes No
↓ ↓
Rollback Debug manually
| 技能 | 集成方式 |
|---|---|
| self-improvement | 将回滚事件记录为学习经验 |
| skill-creator | 创建新技能前自动执行 SAVE |
| healthcheck | 健康检查过程中同步校验 Git 状态 |
高风险操作前务必 SAVE
使用具有描述性的提交消息
checkpoint: before installing news skill checkpoint: before modifying SOUL.md persona checkpoint: before cron job changes
执行 ROLLBACK 前务必确认
未经确认不得执行回滚
禁止提交敏感数据
credentials/ 加入 Git 跟踪不可用于会话数据管理
| 操作 | 命令 | 别名 |
|---|---|---|
| SAVE 检查点 | git add -A && git commit -m "checkpoint: {desc}" |
save |
| ROLLBACK | git reset --hard HEAD~1 |
rollback |
| 查看历史记录 | git log --oneline -10 |
history |
| 检查当前状态 | git status |
status |
| 对比差异 | git diff HEAD |
diff |
User: Install a new skill from ClawHub
Agent (internal):
1. SAVE checkpoint first
$ git add -A
$ git commit -m "checkpoint: before installing {skill-name}"
✓ Checkpoint: abc1234
2. Install skill
$ clawhub install {skill-name}
3. Verify success
✓ Skill installed successfully
User: That skill broke something, rollback!
Agent:
1. Show options
$ git log --oneline -3
abc1234 checkpoint: before installing {skill-name}
def5678 previous state
2. Confirm rollback
"Rollback to abc1234? This will remove the newly installed skill."
3. Execute
$ git reset --hard abc1234
✓ Rolled back successfully
最后更新时间:2026-03-05