GitHub:如何向本地仓库添加开放拉取请求?

时间:2012-01-17 08:00:10

标签: git github

我在iOS Xcode项目中使用NSDate-Extensions插件。主仓库有一些错误,似乎在两个Pull Requests中修复:

这些请求仍然是开放的,不会被主仓库接受。如何以Git方式将这些添加到我的本地仓库?如果我的本地仓库得到更新,如果他们的Fork稍后更新,那就没关系了:

4 个答案:

答案 0 :(得分:16)

在拉动网址的末尾添加.patch - 您可以下载并在您的回购中应用补丁:

curl https://github.com/erica/NSDate-Extensions/pull/6.patch | git am

答案 1 :(得分:15)

您可以在不添加遥控器的情况下从命令行提取请求:

git pull https://github.com/erica/NSDate-Extensions +refs/pull/6/head

如果您还不确定要这样做,那么您可能希望首先检查该分支:

git fetch https://github.com/erica/NSDate-Extensions +refs/pull/6/head:refs/origin/pull/6

与使用补丁文件相比,这样做的好处是git可以获得实际的提交。所以git可以看到master何时被合并到pull请求中。补丁文件完全没有意识到这种差异。

答案 2 :(得分:12)

您应该添加提供拉取请求的分支,并将它们添加为远程:

  • 找到提供链接的人(通常只需点击sha1哈希)

  • 执行以下操作:

    git remote add githubuser theirgithubfork.git

然后您可以轻松下载他们的更改:

  • git fetch githubuser

使用“

轻松进行单独提交
  • git cherry-pick thesha1fromthepullrequest

有关完整示例,请设想this pull request (6bbbcc5) from RogerE on the Ruby Capistrano project

$ git clone git@github.com:capistrano/capistrano.git
$ cd capistrano
$ git remote add RogerE https://github.com/RogerE/capistrano.git
$ git fetch RogerE
$ git cherry-pick 6bbbcc5

答案 3 :(得分:-2)

您可以像这样提取特定的拉取请求:

git pull https://github.com/erica/NSDate-Extensions/pull/6
git pull https://github.com/erica/NSDate-Extensions/pull/7

imo这比添加遥控器(特别是当它只是一次性修复)或通过卷曲管道容易得多。