将Github拉取请求下载为统一差异


Answers:


485

要将提交查看为差异/补丁文件,只需在URL的末尾添加.diff.patch,例如:


13
十分感谢。还有.patch。为什么在GUI中不公开?应该如何发现这一点?
Thilo

45
没有记录可以保持堆栈溢出业务。老实说,这是常见问题解答#2
2011年

这也是因为git pull是下载和应用更改的首选方法。
2011年

噢,谢谢,这个答案很值钱。(我也想写这篇博客。)我不知道任何人理智地可以没有它工作,以及为什么它没有显示在糟糕的Web UI中。
mirabilos 2013年

8
根据这些返回的内容以及developer.github.com/v3/media/…中文档中的链接判断,.diffURL根据git-diff git-scm.com/docs/git-diff输出将默认分支直接与diff进行比较,和.patchURL给出(各自相对于它们的父提交)在适合于基于发送电子邮件的格式在PR个人提交的级联git-format-patch git-scm.com/docs/git-format-patch输出。
rakslice

49

有点相关,要让git下载拉取请求123并将其修补到mylocalbranch本地,请运行:

git checkout -b mylocalbranch
git pull origin pull/921/head

10
或者将拉取请求发送到新的PR分支 git fetch origin pull/921/head:PR,然后与您当前的分支合并,从而使您有机会查看更改 git merge PR --no-commit --no-ff
MoonStom 2015年


这需要您使用凭据设置Git。您不能匿名测试建议的更改(就像您可以手动应用diff一样)。Git的另一个实例采用简单的工作流程并使其变得困难。
jww

2

要以分阶段但未提交的状态将PR更改放入本地存储库,因此您可以查看:

git pull origin pull/123/head --no-commit

并从中生成补丁文件:

git diff --cached > pr123.diff    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.