我已经打开了一个项目的拉取请求。维护者决定接受它,但告诉我修改一些内容。
我该怎么办?我是否应该保持提交哈希不变,我该怎么做?
答案 0 :(得分:155)
只需将更多提交推送到请求所针对的分支。拉取请求将选择此项
如果您想将b合并为主
答案 1 :(得分:31)
我在拉取请求中只有一次提交,我使用git commit --amend
来更新它。然后我用git push -f
进行了强制推送,因此我的修改后的提交取代了原来的提交。 pull请求自动获取新提交。 (它实际上显示了两个提交,但是当我重新加载页面时,旧提交已经消失了。)
因此,虽然通常不推荐强制推送,但它对拉取请求很有用。不建议这样做,因为如果有人根据你的提交做出承诺,那么他们必须在你做出改变之后再做一次改变。但是,由于没有人应该将他们的工作建立在审查不足的拉动请求上,因此在这种情况下它应该是非常安全的。
答案 2 :(得分:6)
如果您继续进行更改并继续推送到同一分支,则精炼提交将添加到相同的pull请求中(除非您的pull请求已合并)。这可能会使历史变得混乱。
我使用的替代解决方案和技术如下:
通过执行以下操作,从您要发送拉取请求的存储库(上游)和分支(开发)中创建一个新分支(修复):
git branch修复上游/开发
将精炼的提交直接添加到这个新创建的分支。
git commit -m"您的消息"
将此分支推送到您自己的分叉远程(可以命名为origin)。
答案 3 :(得分:1)
您也可以使用github api。
curl --user "your_github_username" \
--request PATCH \
--data '{"title":"newtitle","body":"newbody",...}' \
https://api.github.com/repos/:owner/:repo/pulls/:number
中找到详细的数据清单
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 工具。