如何修改Github pull请求?

时间:2013-05-25 09:18:22

标签: git github pull-request

我已经打开了一个项目的拉取请求。维护者决定接受它,但告诉我修改一些内容。

我该怎么办?我是否应该保持提交哈希不变,我该怎么做?

5 个答案:

答案 0 :(得分:155)

只需将更多提交推送到请求所针对的分支。拉取请求将选择此项

实施例

如果您想将b合并为主

  1. 您将c1,c2,c3推送到b
  2. 然后你提出b
  3. 的新请求
  4. 它会得到审核,您需要更多提交
  5. 您将c11,c21,c31推送到b
  6. 拉取请求现在显示所有6个6次提交

答案 1 :(得分:31)

我在拉取请求中只有一次提交,我使用git commit --amend来更新它。然后我用git push -f进行了强制推送,因此我的修改后的提交取代了原来的提交。 pull请求自动获取新提交。 (它实际上显示了两个提交,但是当我重新加载页面时,旧提交已经消失了。)

因此,虽然通常不推荐强制推送,但它对拉取请求很有用。不建议这样做,因为如果有人根据你的提交做出承诺,那么他们必须在你做出改变之后再做一次改变。但是,由于没有人应该将他们的工作建立在审查不足的拉动请求上,因此在这种情况下它应该是非常安全的。

答案 2 :(得分:6)

如果您继续进行更改并继续推送到同一分支,则精炼提交将添加到相同的pull请求中(除非您的pull请求已合并)。这可能会使历史变得混乱。

我使用的替代解决方案和技术如下:

  1. 通过执行以下操作,从您要发送拉取请求的存储库(上游)和分支(开发)中创建一个新分支(修复):

    git branch修复上游/开发

  2. 将精炼的提交直接添加到这个新创建的分支。

    git commit -m"您的消息"

  3. 将此分支推送到您自己的分叉远程(可以命名为origin)。

  4. 比较并发送带有干净提交历史记录的新拉取请求。
  5. 此外,最好在合并拉取请求后删除分支。
  6. 您可以发表评论并关闭之前的拉取请求。

答案 3 :(得分:1)

您也可以使用github api

curl

的示例
curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

您可以在github developer doc

中找到详细的数据清单

示例:更改my pull request

的名称
curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

答案 4 :(得分:0)

在创建 PR 的现有分支之上应用您的更改。例如,如果您的分支名称是 newFeature 并且您创建了 PR 以将 newFeature 合并到 develop 分支。在 newFeature 分支上应用建议的更改,并使用您想要的尽可能多的提交。完成修复建议的审核更改后。允许审阅者重新审阅它。一旦获得批准,您应该可以合并您的 PR。

如果您需要有关 git 的一般帮助,可以使用 SourceTree 或一些 GUI 工具。