输入Diff内容
Patch选项
Patch文件内容
Diff转Patch能做什么?
将unified diff格式的输出转换为标准.patch文件,支持正向和反向补丁生成。可解析git diff输出,统计变更行数,是代码审查和版本控制的实用工具。
核心功能
• Patch生成:将diff输出转为标准.patch格式
• 反向Patch:生成撤销变更的补丁
• 变更统计:统计添加/删除/修改的行数
• 格式验证:检查diff格式是否正确
• 一键下载:直接下载.patch文件
使用教程
步骤1:将git diff或diff -u的输出粘贴到输入区域。也可点击「加载示例」体验。
步骤2:设置Strip级别(默认1,对应patch -p1),点击「生成Patch」或「生成反向Patch」。
步骤3:复制或下载.patch文件,在终端使用 patch -p1 < changes.patch 应用。
应用场景
场景1:代码审查 — 审查他人的代码变更时,将diff转为patch文件,在本地应用后测试验证,确保变更符合预期。
场景2:版本回退 — 使用反向Patch快速撤销某次提交的修改,无需手动逐行还原,适合紧急修复场景。
场景3:离线分发 — 在无法直接访问Git仓库的环境中,通过.patch文件分发代码变更,接收方用patch命令应用。
扩展知识
Patch格式标准:标准.patch文件包含:文件头(---旧文件 / +++新文件)、变更范围(@@起始行,行数+起始行,行数@@)、差异行(+添加、-删除、空格上下文)。patch命令按此格式逐文件、逐段应用变更。
Git Format-Patch:git format-patch生成的.patch文件包含邮件头(From、Subject、Date等)和Git提交信息,适合通过邮件提交代码(如Linux内核开发流程)。本工具处理的是纯diff格式,不含邮件头。
什么是Patch文件?
Patch文件是包含代码差异信息的文本文件,用于将修改应用到源文件。标准格式包含文件头、变更范围和具体差异行。可通过patch命令自动应用。
Unified Diff格式是什么?
Unified Diff是最常用的差异格式,由diff -u命令生成。包含文件名、时间戳、变更位置和内容差异。git diff默认输出此格式。
如何应用生成的Patch?
在终端使用 patch -p1 < changes.patch 命令应用补丁。-p1表示去掉路径第一层目录。使用 --dry-run 参数可先预览。
支持Git Diff格式吗?
支持。git diff的输出本质上是unified diff格式。工具会正确解析额外git头信息,生成标准.patch文件。
Patch文件和Diff文件有什么区别?
本质上没有区别。习惯上.diff文件是纯差异输出,.patch文件是可直接用patch命令应用的格式。
可以反向应用Patch吗?
可以。使用 patch -R < changes.patch 反向应用补丁,即撤销修改。也可用本工具生成反向Patch。