如何从 GitHub 下载单个提交差异?
Posted
技术标签:
【中文标题】如何从 GitHub 下载单个提交差异?【英文标题】:How to download a single commit-diff from GitHub? 【发布时间】:2014-03-21 03:50:13 【问题描述】:我想通过 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 界面显示给定提交的差异,但我如何将其提取到(统一的)差异文件中(理想情况下,提交消息完好无损)?
【问题讨论】:
Download Github pull request as unified diff 的可能重复项 @ChillarAnand:不,不是。您的链接是关于拉取请求,而不是来自单个提交的差异。 【参考方案1】:我发现我必须在末尾添加一个 /,即
https://github.com/foo/bar/commit/$SHA.patch/
【讨论】:
从今天开始,我无法重现这个:github.com/torvalds/linux/commit/…(没有斜杠)对我来说很好(用 firefox、cURL 和 wget 测试)【参考方案2】:好的,我自己找到答案了。
将.patch
(或.diff
)添加到提交URL 将提供一个不错的补丁:
https://github.com/foo/bar/commit/$SHA.patch
感谢Ten Things You Didn't Know Git And GitHub Could Do...
【讨论】:
我们可以在git apply
命令中直接使用这个url吗?喜欢git apply <url.diff>
@DarshanL 好吧,这是一个完全不同的问题,关于git
cmdline 工具的功能(并且超级简单的试用 ;-))并且与 github 无关(github 只是提供这样的文件;但是通过 http:// 提供的任何补丁文件都可以)-但是简短的回答可能是:否
如果补丁在多个提交中完成,是否还有一种简单的方法来获取补丁? (而不是下载和应用几个补丁)
如果你得到Content containing PDF or PS header bytes cannot be rendered from this domain for security reasons.
和.patch
,试试.diff
。它对我有用。以上是关于如何从 GitHub 下载单个提交差异?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用命令行从私有 github 存储库下载单个原始文件?
GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)