Git Watcher — Git 监控器
v1.0.0当您想要跟踪、提交、比较或回滚 OpenClaw 配置更改时使用。触发当用户提到“提交配置”、“保存此版本”等时。
运行时依赖
版本
摘要:N 个文件修改,N 次插入,N 次删除
安装命令
点击复制技能文档
OpenClaw Git Manager 对 OpenClaw 配置文件进行版本控制 —— 提交带 diff 的更改,比较历史记录,回滚到任何之前的版本。 核心位置 每个没有 git 记录的配置更改都是一个潜在的数据丢失事件。 这个技能将 OpenClaw 配置管理从“希望没有问题”转变为“我可以随时回退。” 它跟踪以下内容: ~/.openclaw/openclaw.json —— 主配置 ~/.openclaw/credentials/*.json —— 凭据配置文件 ~/.openclaw/agents/ —— 代理定义 ~/.openclaw/flows/ —— 流定义 ~/.openclaw/skills/ —— 自定义技能配置 它不跟踪以下内容: memory/、logs/、media/、tmp/、trash/、canvas/、npm/、completions/、service-env/、tasks/、.DS_Store。 存储库设置 第一次使用时,如果 ~/.openclaw/ 中没有 git 存储库,则初始化一个 git 存储库,配置一个适当的 .gitignore 文件以排除运行时数据。 模式 /openclaw-git-manager commit 提交当前配置状态并附上人类可读的消息。 使用时: 配置刚刚被修改(通过向导、手动编辑或技能) 在对 openclaw.json 进行风险更改之前 在成功的 doctor 或 config 运行后更改了状态 执行步骤: 检查哪些跟踪文件自上次提交以来已更改(git status) 对于每个更改的文件,显示简洁的 diff 摘要(更改的键,而不是全部内容) 要求用户确认或编辑提交消息 暂存所有更改的跟踪文件 使用消息提交,前缀为 config: 报告提交哈希和更改的文件数 不提交: 原始密钥或真实 API 密钥(如果凭据中包含真实密钥,则警告) 二进制或缓存文件 没有描述更改的提交 /openclaw-git-manager log 显示带有一行摘要和 diff 概述的提交历史记录。 使用时: 用户想要查看更改的内容和时间 诊断配置回归(何时出现问题?) 找到一个已知的好版本来恢复 执行步骤: 运行 git log --oneline -20 以显示最近的提交 对于每个提交,显示: 短哈希、相对时间、消息的第一行 如果用户要求显示特定提交的详细信息,显示完整的 diff:git show <哈希> --stat(文件)+ git show <哈希>(补丁) 以提交号为参考,按提交时间从新到旧显示提交 不显示: 大文件的全部内容 排除路径在 diff 输出中的内容 /openclaw-git-manager diff 显示提交之间或工作树和 HEAD 之间的更改。 使用时: 比较当前未提交的状态与上次提交 比较两个历史提交 验证回滚会更改什么 执行步骤: 如果没有参数:显示所有未暂存更改与 HEAD 之间的 diff 如果 --from <提交> --to <提交>:显示两个提交之间的 diff 格式化 diff 以文件头和每个文件的 +/- 行数 对于 JSON 文件,选项性地渲染为结构化的键:值更改 总结:N 个文件更改,N 个插入,N 个删除 不显示: 二进制 diff(使用“文件更改,N 字节”) 排除路径(memory/、logs/ 等) /openclaw-git-manager restore 回滚到之前的提交或恢复特定文件。 使用时: 配置更改破坏了某些东西,用户想要回退 用户从日志中找到了一个好的提交并想要恢复它 用户说“撤销”或“回到之前” 执行步骤: 如果用户指定了提交(哈希或日志中的编号): 恢复整个树到该提交 如果用户指定了特定文件:仅恢复该文件到提交的版本 首先显示预览 diff:将从当前状态更改什么 在覆盖当前文件之前要求用户确认 恢复后,创建一个自动恢复提交,标记恢复点:config:恢复到 <哈希>(<描述>) 报告哪些文件被更改和新的 HEAD 提交 恢复模式: 完整树恢复:git checkout <提交> -- .(所有跟踪文件) 单文件恢复:git checkout <提交> -- path/to/file 强制重置(破坏性):git reset --hard <提交> —— 仅当用户明确说“强制重置”时 不执行: 在没有用户明确确认的情况下进行破坏性恢复(强制重置、强制签出) 恢复到不是 HEAD 祖先的提交(分离 HEAD 风险) /openclaw-git-manager status 显示工作树的当前状态。 使用时: 用户询问“当前配置状态是什么?” 在提交之前,验证哪些文件将被捕获 在恢复后,验证树是否干净 执行步骤: 运行 git status --short 以获取简洁的视图 显示: 与远程(如果有)相比的提交数,当前分支 列出未提交的更改,包括文件名 报告树是否“干净”或“N 个文件更改” 不显示: 状态模式下的完整 diff(使用 diff 代替) 执行步骤 入口点始终是 scripts/git_manager.py,从 ~/.openclaw/ 调用。 # 从 ~/.openclaw/ 目录 python3 ~/.openclaw/workspace/skills/openclaw-git-manager/scripts/git_manager.py <命令> [参数] # 命令:commit、log、diff、restore