如何获取GitHub拉取请求并将其作为单独项目下载?

时间:2013-12-03 04:03:14

标签: git github

假设我有this pull request并且我想下载它,好像它是它自己的独立项目一样。我该怎么做呢?我没有看到该功能的任何按钮。

3 个答案:

答案 0 :(得分:14)

您可以通过here下载该提交的树的快照。这是一个导出的tarball,因此您将没有任何历史记录。这就是你要找的东西吗?您可以先查看commits he wants you to pull然后选择latest one in the list来实现此目的。导航到此URL将为您提供差异(即,它正在检查提交对象而不是实际树)。您现在只需将上面网址中的commit更改为tree或点击“浏览代码”按钮即可。一旦你这样做,右边有一个“下载ZIP”按钮,允许你下载树。

如果您想要完整的历史记录,那么您需要获取mlwelles更改。您可以通过here上的mlwelles:master存储库并使用git remote add mlwelles git@github.com:mlwelles/AFOAuth2Client.git将其作为远程添加到您自己的本地克隆来执行此操作。然后,您可以使用git fetch remote master获取他要求您合并的更改。更改将在FETCH_HEAD中提供。您可以使用git checkout FETCH_HEADgit log(或其他)查​​看它们,使用git diff FETCH_HEAD(针对当前分支)查看差异,或者最终整合他要求您使用{{1 }}。执行此操作后,您可以使用git merge FETCH_HEAD将更改推送到您自己的存储库(假设原始存储库添加为git push origin master)。

答案 1 :(得分:2)

您是否已经检查过this answer了?

对于迈克尔的拉动请求,会看起来像这样:

git clone https://github.com/mlwelles/AFOAuth2Client.git -b master

最终让我在本地克隆了迈克尔的拉动请求。

答案 2 :(得分:0)

如果您只是对tar或zip归档感兴趣,实际上有一个API for that。您可以使用如下链接下载请求请求的内容:

https://api.github.com/repos/AFNetworking/AFOAuth2Manager/zipball/pull/55/head

重要的部分是/ zipball /(或/ tarball /)后面的部分必须是有效的git引用。对于请求请求,这将是请求/ ID / head,其中ID是请求请求ID。请参阅this guide的步骤5。