GitHub - 复刻一个仓库并实现其拉取请求

3
我发现了一个有用的代码仓库,但是它已经不再维护了,有一些好的pull requests 包含修复bug等措施,但都尚未实现。我是否可以fork这个代码库,并将这些pull request实现到我的forked repo中?

3
这看起来很相关:https://gist.github.com/piscisaureus/3342247 - Ismail Badawi
是的,有多种方法。我建议您首先简单地fork该项目,并询问拉取请求的作者是否也可以向您的repo发出拉取请求。如果失败了,请参见上面评论中的链接。 - Wilbert
2个回答

0

为了避免链接不稳定,我已经从本帖中两次链接的要点中复制了解决方案:

.git/config文件中找到与您的Github远程相关的部分。它看起来像这样:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git

现在在这个部分中添加一行fetch = +refs/pull/*/head:refs/remotes/origin/pr/*。显然,将github的url更改为与您的项目URL匹配。最终看起来像这样:
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

现在获取所有的拉取请求:

$ git fetch origin
From github.com:joyent/node
 * [new ref]         refs/pull/1000/head -> origin/pr/1000
 * [new ref]         refs/pull/1002/head -> origin/pr/1002
 * [new ref]         refs/pull/1004/head -> origin/pr/1004
 * [new ref]         refs/pull/1009/head -> origin/pr/1009
...

查看特定的拉取请求:

$ git checkout pr/999
Branch pr/999 set up to track remote branch pr/999 from origin.
Switched to a new branch 'pr/999'

0

复制存储库不会复制那些拉取请求,但是您可以合并那些拉取请求所在的分支。

例如,这个拉取请求显示:

DveMac wants to merge 1 commit into Semantic-Org:master from DveMac:master 

你可以将远程的“DevMac”添加到你本地的分支克隆中:

git remote add DevMac https://github.com/DveMac/Semantic-UI

然后

git fetch DveMac
git merge DveMac/master

如果你想要更直接的方式(获取所有拉取请求而不是只选择一个),Ismail Badawi建议使用这个Gist来从/pull命名空间中获取分支,并将其放在/pr命名空间中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接