问题
I've opened a pull request to a project. The maintainer has decided to accept it, but told me to modify some contents.
How can I do it? Whether I should keep the commit hash unchanged, how can I do it?
回答1:
just push more commits on to the branch the request is for. The pull request will pick this up then
Example:
If you want to have b merged into master
- You push c1,c2,c3 to b
- then you make a new request for b
- it gets reviewed and you need more commits
- You push c11,c21,c31 to b
- The pull request now shows all 6 six commits
回答2:
I just had one commit in a pull request, and I used git commit --amend
to update it. I then did a force push with git push -f
so my amended commit replaced the original one. The pull request automatically picked up the new commit. (It actually showed both commits, but when I reloaded the page the old commit had gone.)
So while a forced push is generally not recommended, it can be useful for pull requests. It's not recommended because if someone bases a commit on top of yours then they will have to do a rebase after your change. But since nobody should be basing their work on an under-review pull request, it should be pretty safe in this situation.
回答3:
If you continue to make changes and keep pushing to the same branch, the refined commits will be added to the same pull request (unless your pull request has been merged). This could make the history very cluttered.
An alternate solution and a technique that I use is as follows:
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.
回答4:
You also can use github api.
example with curl
curl --user "your_github_username" \
--request PATCH \
--data '{"title":"newtitle","body":"newbody",...}' \
https://api.github.com/repos/:owner/:repo/pulls/:number
you can find the detailled list of data in github developer doc
example : change name of 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
来源:https://stackoverflow.com/questions/16748115/how-to-modify-github-pull-request