所以我首先创建了一个回购,然后对这个回购做出了承诺。然后我打开了一个拉请求。pull请求列出了我想要的所有更改。

在审查了我的拉请求后,回购所有者希望我在接受它之前做出一些更改。我已经在我的叉子做了这些更改,现在我如何更新这些更改拉请求(或者这不是我应该如何处理它)?


只需推到拉请求引用的分支。只要拉请求仍然打开,就应该自动更新添加的提交。


你做对了。pull请求将自动更新。流程如下:

打开拉请求 根据本地回购中的反馈提交更改 推到你的叉子的相关分支

pull请求将自动将新的提交添加到PR的commit选项卡。


如果在Windows上使用GitHub:

Make changes locally. Open GitHub, switch to local repositories, double click repository. Switch the branch(near top of window) to the branch that you created the pull request from(i.e. the branch on your fork side of the compare) Should see option to enter commit comment on right and commit changes to your local repo. Click sync on top, which among other things, pushes your commit from local to your remote fork on GitHub. The pull request will be updated automatically with the additional commits. This is because the pulled request represents a diff with your fork's branch. If you go to the pull request page(the one where you and others can comment on your pull request) then the Commits tab should have your additional commit(s).

这就是为什么在开始进行自己的更改之前,应该为计划放入拉请求中的每一组更改创建一个分支。这样,一旦您发出了拉取请求,您就可以创建另一个分支,并在不影响之前的拉取请求的情况下继续处理其他任务/特性/错误修复。


在GitHub中更新拉请求就像将想要的更改提交到现有的分支(与拉请求一起使用)一样简单,但通常也希望将更改压缩到单个提交:

git checkout yourbranch
git rebase -i origin/master

# Edit command names accordingly
  pick   1fc6c95 My pull request
  squash 6b2481b Hack hack - will be discarded
  squash dd1475d Also discarded

git push -f origin yourbranch

...现在拉请求只包含一次提交。


有关rebase的相关链接:

https://help.github.com/articles/about-git-rebase 压缩我所有的提交到一个GitHub拉请求


我使用以下步骤:

Git重置——hard < pull request的commit key > 我对代码的修改是我想做的吗 git添加 Git提交—修改 Git push -f origin < pull request>的远程分支的名称