git-version-control

Polar Sponsor
爱发电 赞助
.NET 9.0

基于 Git 的 OpenClaw 系统配置变更版本控制。提供两项核心能力:(1)SAVE —— 在执行敏感操作前创建检查点……

Git 版本控制 QQ OpenClaw 配置保护

功能概述

Git 版本控制 QQ OpenClaw 配置保护是一项面向实际任务的技能,主要用于保护您的 OpenClaw 环境, 并配备基于 git 的检查点和回滚能力;Overview.;

核心要点

  • OpenClaw 配置目录 (~/. open)。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Git 版本控制 | OpenClaw 配置保护

通过基于 Git 的检查点与回滚能力,保障您的 OpenClaw 环境安全。

概述

OpenClaw 配置目录(~/.openclaw/)本身即为一个 Git 仓库。本能力为系统配置变更提供安全、可靠的版本控制支持。

受保护的文件包括:

  • workspace/SOUL.md、AGENTS.md、USER.md、IDENTITY.md
  • workspace/skills/ —— 已安装的技能
  • workspace/memory/ —— 记忆文件
  • openclaw.json —— 主配置文件
  • cron/jobs.json —— 定时任务配置

排除在版本控制之外的文件:

  • 会话日志(*.jsonl、*.jsonl.lock)
  • SQLite 数据库(*.sqlite)
  • 临时文件
  • 凭证信息(敏感数据)

核心操作

1. SAVE — 创建检查点

在执行敏感变更前创建一次 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)"

2. ROLLBACK — 恢复至先前状态

当系统出现异常时,回退至之前的某个提交版本。

适用场景:

  • 用户反馈近期变更后系统出现异常
  • 用户显式请求回滚操作
  • 检测到配置损坏
  • 技能安装失败后

回滚选项:

选项 命令 效果
软重置 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

.gitignore 配置

确保 ~/.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 状态

安全准则

✅ 最佳实践

  1. 高风险操作前务必 SAVE

    • 从外部源安装技能
    • 修改 AGENTS.md、SOUL.md
    • 执行批量记忆更新
  2. 使用具有描述性的提交消息

    checkpoint: before installing news skill
    checkpoint: before modifying SOUL.md persona
    checkpoint: before cron job changes
    
  3. 执行 ROLLBACK 前务必确认

    • 明确展示将丢失的内容
    • 对硬重置操作必须获得用户确认

❌ 应避免的行为

  1. 未经确认不得执行回滚

    • 硬重置会销毁所有未提交的更改
    • 必须向用户明确提示数据丢失风险
  2. 禁止提交敏感数据

    • 确保 .gitignore 已排除凭证目录
    • 切勿将 credentials/ 加入 Git 跟踪
  3. 不可用于会话数据管理

    • 会话日志已被有意排除
    • 聚焦于配置管理,而非运行时数据

速查表

操作 命令 别名
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

相关专题

更多
git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2281

6

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2517

7

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

714

5

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1260

6

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

3859

9

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.1万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.9万人学习