我发现了一个有用的代码仓库,但是它已经不再维护了,有一些好的pull requests 包含修复bug等措施,但都尚未实现。我是否可以fork这个代码库,并将这些pull request实现到我的forked repo中?
为了避免链接不稳定,我已经从本帖中两次链接的要点中复制了解决方案:
在.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'
复制存储库不会复制那些拉取请求,但是您可以合并那些拉取请求所在的分支。
例如,这个拉取请求显示:
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
命名空间中。