是否可以在Github上继续其他人发起的pull request?

7
在一个不属于我自己的代码库中,有第三方开了一个pull request。其中一位所有者建议在合并之前进行一些更改。然而,pull request的作者并没有这样做,它保持着打开状态已经好几个月了,修改也没有被实现。
实际上,我是指像这样的情况
我会自己进行所要求的改进。
最干净、最好的方法是什么?我可以在下面添加我的提交,还是需要开一个新的pull request?

我们可以从我们的特性或本地分支执行“git pull origin <具有开放拉取请求的分支名称>”。现在,该分支的更改将在您的分支中,我们可以进行修改。完成后,我们可以将其推送到主分支。 - staticvoidmain
2个回答

13

更新一个Pull Request的唯一方法是推送到已经拥有PR的分支,因此即使原始仓库的所有者也不能默认修改PR。这样做是有道理的,至少可以追踪更新。

因此,如果您想完成该工作,最好的方法是fork原始仓库,在您的计算机上clone它,将PR的仓库添加为remotecheckout PR后的分支,在其上commitpush这些更改到您自己的fork中,并在评论中说明它继续修复了其他PR,这样当您的PR合并时,原始PR将被关闭。

例如:

$ # Go to https://github.com/cheeriojs/cheerio/ and fork it
$ git clone https://github.com/Delgan/cheerio/ && cd cheerio # assuming that's your GH username :)
$ git remote add pr-base https://github.com/digihaven/cheerio/
$ git fetch pr-base
$ git checkout pr-base/master -b 641-appendTo_prependTo
$ # work work work
$ git add #...
$ git commit -m 'Fixed all the things! See #641, fixes #726'
$ git push origin 641-appendTo_prependTo
$ # Go to your repo and make the PR
$ # ...
$ # SUCESS! (??!)

1
因为我已经 fork 了原始仓库,所以我无法 fork 别人的 repo。我猜 GitHub 不会让我同时 fork 原仓库和它的 fork。请问我该怎么办? - max
为什么你需要分叉它?为什么不能只是将远程添加到现有的克隆中? - gerrit

2

从您的分支中使用此命令:

git pull origin <the open pull request branch name>

它将从那个分支拉取提交到你的分支。

进行改进并将其推送到主分支。


2
如果您没有对原始存储库的写访问权限,则我认为这些东西都不起作用。 - mgarciaisaia

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