如何从GitHub下载单个commit-diff?

uml*_*ute 89 diff patch github git-diff

我想${SHA}通过Web界面从GitHub 获得一次提交(让我们称之为).

例如,类似于:

$ git clone http://github.com/foo/bar
$ cd bar
$ git format-patch -o .. ${SHA}~1..${SHA}
$ cd ..
$ rm -rf bar
Run Code Online (Sandbox Code Playgroud)

...但无需克隆整个存储库(问题中的repo很大).

显然GitHub可以通过web接口显示给定提交的差异,但是我如何将其提取到(统一)差异文件中(理想情况下,提交消息完好无损)?

uml*_*ute 176

好的,我自己找到了答案.

添加.patch(或.diff)到commit-URL将提供一个很好的补丁:

https://github.com/foo/bar/commit/${SHA}.patch
Run Code Online (Sandbox Code Playgroud)

感谢你不知道的十件事Git和GitHub可以 ......

  • @einnocent是的,这就是为什么答案说".patch(或.diff)" (3认同)
  • @DarshanL 好吧,这是一个关于 `git` cmdline 工具的功能的完全不同的问题(而且尝试起来超级简单;-))并且与 github 无关(github 只是这样一个文件的提供者;但是任何补丁文件通过 http:// 就可以) - 但简短的答案可能是:不 (2认同)

小智 9

我发现我必须在最后添加一个 / ,即

https://github.com/foo/bar/commit/${SHA}.patch/
Run Code Online (Sandbox Code Playgroud)

  • 截至今天,我无法重现这个:https://github.com/torvalds/linux/commit/1ffaddd029c867d134a1dde39f540dcc8c52e274.patch(没有尾部斜杠)对我来说很好用(用 firefox、cURL 和 wget 测试) (6认同)