SuperAPI AI 工具集

generating-patches

通用与其它

查看项目

更新于 10-16 07:24

技能介绍

用途:在修改上传的代码库后,把改动导出为可移植的 git 补丁文件,便于用户在本地仓库中应用。典型流程为:用户上传 zip → 编辑文件 → 用该技能导出补丁。

前提:确认 git 可用且工作目录是 git 仓库,否则初始化:git status 2>/dev/null || git init。若上传的代码库没有 git 历史,先建立基线提交:git init、git add -A、git commit -m "Baseline: original uploaded state"。

生成补丁:未提交的工作区改动用 git diff > /mnt/user-data/outputs/changes.patch;已暂存未提交用 git diff --cached;两者都要用 git diff HEAD。已提交改动用 git format-patch --stdout baseline..HEAD 或 -n 3 指定提交数,可保留提交信息与元数据。

边界情况:git diff 默认排除二进制文件,可用 git diff --name-only --diff-filter=M | xargs file | grep -v "ASCII|UTF-8|empty" 检查并提醒用户。大补丁可按目录或类型拆分,如 git diff -- "*.py"、git diff -- src/。未检测到改动时,检查是否编辑了 git 树外的副本或文件未被 git 跟踪(需先 git add)。

输出:始终输出到 /mnt/user-data/outputs/ 并使用描述性文件名,提供下载链接。

本地应用说明:cd /path/to/your/repo,预览用 git apply --check changes.patch,应用用 git apply changes.patch;format-patch 输出用 git am changes.patch。排错:git apply --reject 尽量应用并对冲突写 .rej,git apply -R 反向应用,git apply --3way 启用三方合并。

可选:按需生成 PR 描述,先用 git diff --stat 取摘要,再列出变更文件名,并补充改动原因,适合作为 GitHub PR 正文。