2012-10-01 57 views
60
  • 我做了一些改变
  • 我提交pull请求
  • 拉请求被接受和合并。
  • 我们发现了一个bug
  • 我修复了这个错误后再次移除了这些修改。

我已经修复了这个错误,并希望重新提交一个额外提交的请求。有什么方法可以重新打开请求或更新它,或者我是否必须创建新的请求,再次输入说明等? Gitorious有这个功能,我们最近搬到了GitHub。GitHub上:重新打开合并拉请求

+0

我今天处于类似的情况,即使用“合并拉取请求”按钮,默认合并更改到目标分支并关闭PR。后来我发现了一个我希望原始开发人员修复的测试问题。我想要一种方法来重新打开这个PR,这样可以将更多的提交添加到同一个PR中,但是不能,因为没有用于重新打开PR的按钮。 – SBirthare

回答

70

答案似乎是:你不行。

一旦拉动请求被合并并关闭,它将被永久锁定并且不能重新打开。如果您的pull请求被合并,关闭,那么您的更改将被撤消(通过强制推回到合并之前),您将需要向分支添加提交并创建新的请求,复制所有细节并可能提供指向原始拉取请求以手动保存历史记录的链接。

可能是未来GitHub的一个很好的功能请求。

+7

我不知道它何时更改,但您现在可以评论并重新打开已关闭的PR。 –

+10

@LB,似乎你可以重新打开已关闭*和合并*的PR。 –

+0

你其实可以。假设您已经恢复了初始合并,您可以创建主要repo的分支,并在此新分支上恢复正在恢复合并的提交。 – SsjCosty

12

我刚刚成功地重新通过

  1. pull请求谈到拉入请求
  2. 点击“提交并重新打开”按钮,在出现的评论表单上。
+0

我还没有设法复制这个 - 你能解释看到这种行为所需的步骤吗?我试着评论一个关闭的拉取请求(没有工作),评论一个关闭的拉取请求并推送到它正在拉入的分支(没有工作)。还有什么要尝试?是否需要合并pull请求,然后以某种方式未合并? –

+0

我不知道有什么不同的潜在需求。可能是任何(已提交拉请求的新变更,是项目所有者的成员,其他...) –

+0

我现在试过你提到的所有东西,仍然看不到它。我是回购所有者。搜索谷歌的“提交并重新打开GitHub”提供了一个单击 - 本页面。任何进一步的信息将非常有帮助。您的拉取请求最初是否被拒绝? –

3

只需从现有分支派生出一个新的分支,并在其中完成额外的1次提交。从那里提交拉取请求。

+1

这将导致一个新的拉请求没有原始的历史记录。 – Dave

+1

这就是我最终做的。是的,历史不那么线性,但对我来说没问题。 – possen

3

您可以使用revert动作:

enter image description here

它将创建另一个拉请求撤消所有的变化在合并后的PR做。

+0

这不是最佳做法:) – antonbormotov

+0

@antonbormotov你能提出一个更好的方法吗? –

+0

让我们假设,我们已经将pr与提交(mA和mB)合并到我们想要恢复的稳定分支。合并“恢复”pr后,历史将看起来像提交树:X-Y-mA-mB-C-D-rA-rB-E-F。为什么你想看看历史上所有提交更改(mA,mB)的提交,然后取消它们(rA,rB)?最好重新绑定并从稳定的分支中删除那些“坏”的mA和mB,并保持历史清洁。当然,如果合并是相对较新的话,这是有道理的。 – antonbormotov