You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取当前修改文件相对于初始克隆版本的git patch?

Git获取修改补丁(Patch)操作指南

确认基准版本

你首次克隆的原始版本默认对应远程仓库的默认分支,通常命名为main或master,可以通过git branch -r查看所有远程分支确认名称。如果是Fork协作场景,原始项目称为上游仓库,需要先关联后再同步基准版本。

生成相对克隆原始版本的Patch

根据你修改的提交状态选择对应命令:

  • 工作区修改未暂存未提交,直接导出完整补丁:
    git diff origin/main > my_change.patch
    将命令中的main替换为你仓库的实际默认分支名,下同
  • 修改已经提交到本地分支(假设本地分支名为dev),导出分支所有差异补丁:
    git diff origin/main dev > my_change.patch
  • 需要保留每个提交的信息、适合PR提交的拆分补丁,可生成单提交对应单补丁的文件:
    git format-patch origin/main
    该命令会自动生成带编号的.patch文件,包含提交作者、提交说明等完整信息,协作场景下更规范。

Fork/PR协作场景补充操作

如果你是Fork了其他仓库进行开发,原始仓库为上游仓库,需要先完成上游关联再对比差异:

  • 关联上游仓库:
    git remote add upstream 原始上游仓库的克隆地址
  • 同步上游最新代码:
    git fetch upstream
  • 生成你的修改相对上游最新版本的补丁,用于PR前自查或提交:
    git diff upstream/main 你的本地分支名 > pr_patch.patch
  • 应用他人提交的补丁:
    • 普通diff生成的补丁:git apply xxx.patch,仅应用修改到工作区
    • git format-patch生成的带提交信息的补丁:git am xxx.patch,应用修改同时同步提交记录

注意:如果修改包含二进制文件,需要给diff命令加上--binary参数,比如git diff --binary origin/main > my_change.patch,否则二进制文件的修改不会被写入补丁文件。

内容的提问来源于stack exchange,提问作者user17182963

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:03