You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取GitHub PR中未合并提交的补丁或Git Diff本地副本?

别发愁,针对未合并PR里的提交,咱们有几个实用的办法来导出补丁或者diff文件,下面一步步来操作:

方法一:拉取PR分支到本地后生成补丁

这种方法适合需要灵活处理提交(比如后续要应用补丁)的场景:

  • 首先给本地仓库添加原项目的远程源(如果还没加的话):
    git remote add upstream https://github.com/overleaf/web.git
    
  • 拉取目标PR的分支到本地,命名为pr-103方便识别:
    git fetch upstream pull/103/head:pr-103
    
  • 切换到这个本地分支:
    git checkout pr-103
    
  • 生成补丁文件:
    • 如果你想每个单独的提交都生成一个.patch文件,可以用format-patch命令,指定PR分支相对于基础分支(比如mainmaster)的范围:
      git format-patch main..pr-103
      
      执行后会在当前目录生成一系列类似0001-xxx.patch的文件,每个对应PR里的一个提交。
    • 如果你想生成包含所有提交变更的单个diff文件,用diff命令输出到文件即可:
      git diff main..pr-103 > pr-103-full.diff
      
方法二:直接从GitHub获取补丁/文件(无需拉取整个分支)

如果不想拉取整个分支,也可以直接通过GitHub的页面规则来获取:

  • 获取整个PR的完整diff或补丁:在PR的页面URL后加上.diff.patch后缀,访问后就能将页面内容保存为对应的本地文件,里面会包含PR所有35个提交的变更内容。
  • 获取单个提交的补丁:找到PR里每个提交的详情页面,在页面URL后加上.patch后缀,访问后就能下载该提交单独的补丁文件,逐个保存即可。

小提示:如果PR的基础分支(比如main)最近有更新,建议先拉取最新的基础分支内容,再生成diff或补丁,这样能保证文件的准确性,避免不必要的冲突提示。

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

火山引擎 最新活动