创建、更新、验证或排查OpenClaw仓库的自动化Git备份工作流。用于用户需要定时提交和推送备份的场景。
OpenClaw Git备份是一项面向实际任务的技能,主要用于使用此技能为 OpenClaw 备份创建可重复使用的夜间 git 备份工作流程;此工作流程所做的: 阶段重置;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
使用此技能为 OpenClaw 仓库构建可复用的每日 Git 备份工作流。
该工作流的功能如下:
+added ~modified -deleted 的计数信息git push,以确保此前未推送的本地提交被同步出去在进行任何更改前,请确认以下值:
origin若用户已隐含提供了这些值,则无需将其转化为问答式交互流程,直接继续执行即可。
全新配置下的合理默认值:
originUTCOpenClaw Backupbackup@localmain该技能包含脚本 scripts/nightly_git_backup.sh。
建议将该脚本作为实现源码优先使用,再将其复制到用户期望由 cron 任务调用的运行时路径下。
典型安装步骤:
install -D -m 755/scripts/nightly_git_backup.sh bash -n
附带脚本支持以下环境变量:
BACKUP_REMOTE — 默认值:originBACKUP_BRANCH — 可选,显式指定目标分支BACKUP_TZ — 默认值:UTCBACKUP_AUTHOR_NAME — 默认值:OpenClaw BackupBACKUP_AUTHOR_EMAIL — 默认值:backup@localBACKUP_EXCLUDES — 逗号分隔的 Git 路径匹配排除模式,例如:cron,cron/**,.cache,.cache/**第一个位置参数为仓库路径。若省略,则脚本将依次尝试使用 BACKUP_REPO 环境变量或当前工作目录。
请检查以下内容:
git -C rev-parse --show-toplevel git -C status --short --branch git -C remote -v openclaw cron list 或等效的 cron 列表命令将附带脚本复制至 cron 任务将执行的运行时路径。
若 HTTPS 推送已正常工作,请勿改动现有认证配置。
若用户明确提供了 GitHub HTTPS Token,请优先采用仓库级凭据存储方式,而非将凭据嵌入远程 URL 中:
git -Cconfig credential.helper 'store --file= /.git/credentials' git -C config credential.useHttpPath true printf 'protocol=httpsnhost=github.comnpath=OWNER/REPO.gitnusername=x-access-tokennpassword=TOKENn' | git -C credential approve chmod 600 /.git/credentials git -C ls-remote --heads
相关规则:
600参阅 references/cron-job-template.md。
设置任务执行命令如下:
bash -lc ''
典型的 cron 设置包括:
不可止步于“任务已创建”。必须完整测试端到端流程。
强制运行后,请检查以下内容:
git status --short --branchgit rev-list --left-right --count /...HEAD bash -n git -C status --short --branch git -C remote -v git -C ls-remote --heads git push,以同步此前未推送的本地提交附带脚本生成的提交格式如下:
backup: snapshot YYYY-MM-DD HH:MM:SS +0000 | +A ~M -D
Added(n) - ... Modified(n) - ... Deleted(n) - ... Renamed(n) - old -> new
正文内容须保持客观、以文件为中心。
部分仓库内含每次运行都会变化的调度器状态。请通过 BACKUP_EXCLUDES 显式排除。
示例:
BACKUP_EXCLUDES='cron,cron/**'
Git 仅备份目标仓库目录内的文件。若某工作流还依赖仓库外的目录,则这些目录不会被自动覆盖,除非用户显式添加第二个同步步骤,或将它们镜像进仓库内。
详见 references/backup-scope.md。
“cron 任务已存在”并不足够。
真正的成功条件是:
反馈结果时,请保持具体、明确: