如何更新从分叉回购拉请求?

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

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

193337 次浏览

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

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

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

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

如果使用Windows上的GitHub:

  1. 在本地进行更改。
  2. 打开GitHub,切换到本地存储库,双击存储库。
  3. 将分支(靠近窗口顶部)切换到您创建拉请求的分支(即。你叉子那边的树枝)
  4. 应该看到选项输入提交注释的权利和提交更改到您的本地回购。
  5. 点击顶部的同步,除其他外,将你的提交从本地推送到GitHub上的远程fork。
  6. pull请求将随着额外的提交而自动更新。这是因为拉出的请求代表了与fork分支的差异。如果您转到拉取请求页面(您和其他人可以对您的拉取请求进行评论的页面),那么“提交”选项卡应该有您的额外提交。

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

在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的相关链接:

我使用以下步骤:

  1. # EYZ0
  2. 我对代码的修改是我想做的吗
  3. # EYZ0
  4. # EYZ0
  5. # EYZ0