Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从GitHub下载单个提交差异?_Github_Diff_Patch_Git Diff - Fatal编程技术网

如何从GitHub下载单个提交差异?

如何从GitHub下载单个提交差异?,github,diff,patch,git-diff,Github,Diff,Patch,Git Diff,我希望通过web界面从GitHub获得一个提交(我们称之为${SHA}) 例如,类似于: $ git clone http://github.com/foo/bar $ cd bar $ git format-patch -o .. ${SHA}~1..${SHA} $ cd .. $ rm -rf bar …但不必克隆整个存储库(所讨论的回购协议很大) 显然,GitHub可以通过web界面显示给定提交的差异,但我如何将其提取到(统一的)差异文件中(理想情况下,提交消息保持完整)?好的,我自己

我希望通过web界面从GitHub获得一个提交(我们称之为
${SHA}

例如,类似于:

$ git clone http://github.com/foo/bar
$ cd bar
$ git format-patch -o .. ${SHA}~1..${SHA}
$ cd ..
$ rm -rf bar
…但不必克隆整个存储库(所讨论的回购协议很大)


显然,GitHub可以通过web界面显示给定提交的差异,但我如何将其提取到(统一的)差异文件中(理想情况下,提交消息保持完整)?

好的,我自己找到了答案

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

https://github.com/foo/bar/commit/${SHA}.patch

多亏了…

我发现我不得不在末尾加上一个/,即

https://github.com/foo/bar/commit/${SHA}.patch/

@chillara的可能复制品:不,不是。您的链接是关于拉取请求的,而不是来自单个提交的差异。@einnocent是的,这就是为什么答案说“.patch(或.diff)”我们可以在
git apply
命令中直接使用此url吗?就像
git apply
@DarshanL一样,这是一个关于
git
cmdline工具的功能的完全不同的问题(而且非常容易尝试;-),与github无关(github将只是这样一个文件的提供者;但是通过http://提供的任何补丁文件都可以)-然而,简短的回答可能是:如果在多个提交中完成,是否还有一种简单的方法可以获得补丁?(而不是下载和应用几个补丁)到今天为止,我无法复制这个:(没有尾随斜杠)对我来说很好(用firefox、cURL和wget测试)