Patch补丁应用器

粘贴 .diff/.patch 与源文件,本地按 hunk 逐块应用,失败精确到行

解析 unified diff(--- a/x +++ b/x 文件头 + @@ -l,s +l,s @@ 块),对每个 hunk 先按声明行号定位,上下文不符时自动在附近行号搜索匹配位置;仍不匹配就把「期望上下文 / 实际内容」摆出来并跳过该块,绝不崩。全部 hunk 按顺序累计行号位移,输出可直接复制的结果文件。不做 fuzz 模糊合并——匹配不了就明确报错。所有内容留在浏览器本地处理。

Diff 补丁内容

解析到 0 个文件段、 0 个 hunk。

源文件内容

源文件共 0 行。

逐块应用结果

粘贴 diff 后,每个 hunk 的成功/失败状态显示在这里

结果文件

在左侧输入 diff 与源文件后,这里输出打过补丁的完整内容。

#关于 Patch 补丁应用器

unified diff 是 Git、diff -u、各类 PR 导出补丁的通用格式。手工打补丁最怕「行号对不上」:本工具按 hunk 逐个尝试——先用声明的起始行定位,把上下文(空格行)与待删行(-行)与源文件逐字比对;不一致就在附近行号双向搜索,找到完全吻合处再落刀,找不到就整块标记失败并展示冲突行,其余 hunk 照常处理。

如何使用

  1. 把 git diff > x.patch 或 diff -u 产出的补丁粘到左上;
  2. 把要修改的源文件全文粘到左下(单文件场景;多文件段会按顺序作用于同一份文本,仅供预览);
  3. 查看每个 hunk 的成功/失败标记,失败块附带「期望 vs 实际」行;
  4. 点击「复制结果」拿到应用后的完整文件内容,回编辑器保存即可。

定位与失败规则

  • 匹配依据是上下文与删除行的逐字相等(含行首尾空格);纯新增 hunk(删除行为 0 条)在就近位置直接插入。
  • 就近搜索覆盖 ±max(300, 文件行数) 行,可吸收上方 hunk 造成的行号漂移;多个 hunk 按补丁顺序应用并累计位移。
  • 本工具不做 fuzz(允许忽略 1-2 行上下文的模糊合并),宁可失败报告也不静默放错位置——生产环境请配合 git apply 复核。

常见问题

  • 为什么全部 hunk 都失败?多半是源文件粘错了版本(或行尾换行风格 CRLF/LF 不一致——本工具按行比较时不换算行尾符,请保持同一来源);看失败详情里的期望与实际行即可判断。
  • 新建或删除文件的补丁怎么处理?--- /dev/null 表示新建,源文件留空即可整段插入;反之删除文件补丁要求源内容与被删行完全一致。git 扩展头(diff --git、index 行)会被自动忽略。
  • 补丁和文件会被上传吗?不会,解析与应用全部在浏览器本地完成,适合未公开的产品代码与内部补丁。

相关工具推荐

Spine动画编辑器

专业的Spine动画预览和编辑工具,支持多引擎导出

热门 新品 本地

SQL查询优化器

分析SQL查询并提供优化建议

热门 新品 本地

JVM启动参数配置

可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项

热门 新品 本地

代码片段转换

不同编程语言间代码片段转换(如Python↔JavaScript)

热门 新品 本地

IP地址查询

查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6

热门 新品 本地

JSON转TypeScript接口

根据JSON数据自动生成TypeScript类型定义

热门 新品 本地

相关教程