我打开了一个项目的拉请求。维护者已经决定接受,但是让我修改一些内容。
我该怎么做呢?我是否应该保持提交哈希不变,我怎么做?
我打开了一个项目的拉请求。维护者已经决定接受,但是让我修改一些内容。
我该怎么做呢?我是否应该保持提交哈希不变,我怎么做?
当前回答
我在pull request中只有一个commit,我使用git commit -amend来更新它。然后我用git push -f进行强制推送,因此我修改后的提交替换了原来的提交。拉请求自动选择新的提交。(它实际上显示了两次提交,但当我重新加载页面时,旧的提交已经消失了。)
因此,虽然通常不推荐强制推,但它对于拉请求很有用。不建议这样做,因为如果有人在你的提交基础上进行了提交,那么他们将不得不在你的更改之后进行rebase。但是由于没有人应该将他们的工作建立在审查中的拉请求之上,因此在这种情况下应该是相当安全的。
其他回答
我在pull request中只有一个commit,我使用git commit -amend来更新它。然后我用git push -f进行强制推送,因此我修改后的提交替换了原来的提交。拉请求自动选择新的提交。(它实际上显示了两次提交,但当我重新加载页面时,旧的提交已经消失了。)
因此,虽然通常不推荐强制推,但它对于拉请求很有用。不建议这样做,因为如果有人在你的提交基础上进行了提交,那么他们将不得不在你的更改之后进行rebase。但是由于没有人应该将他们的工作建立在审查中的拉请求之上,因此在这种情况下应该是相当安全的。
将更改应用到创建PR的现有分支之上。例如,如果你的分支名称是newFeature,你已经创建了PR,将newFeature合并到开发分支中。在newFeature分支上应用建议的更改,并提交任意数量的文件。一旦你完成了修正建议的审查变更。允许审稿人重新审查。一旦批准,你就可以合并你的PR了。
如果你需要git方面的帮助,你可以使用SourceTree或一些GUI工具。
只需将更多的提交推到请求的分支上。然后,拉请求将拾取这个。
例子:
如果你想把b合并到master
你把c1 c2 c3推到b 然后你对b提出新的请求 它被审查,你需要更多的提交 你把c11 c21 c31推到b pull请求现在显示所有6个提交
如果您继续进行更改并继续推入同一个分支,那么经过改进的提交将被添加到同一个拉取请求中(除非您的拉取请求已经合并)。这可能会使历史变得非常混乱。
我使用的另一种解决方案和技术如下:
Create a new branch (fixes) from the repository(upstream) and branch (develop) to which you intend to send the pull request by doing: git branch fixes upstream/develop Add your refined commits directly to this newly created branch. git commit -m "your message" Push this branch to your own forked remote (could be named origin). Compare and send in a new pull request with clean commit history. Also, it is a good idea to delete your branch after the pull request has been merged. And you can comment and close your earlier pull requests.
你也可以使用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开发者文档中找到详细的数据列表
示例:更改我的pull请求的名称
curl --user "jeremyclement" \
--request PATCH \
--data '{"title":"allows the control of files and folders permissions."}' \
https://api.github.com/repos/Gregwar/Cache/pulls/9