如何从forked repo更新pull请求?

ste*_*bot 564 git version-control github

所以我首先分叉了一个回购,然后提交了一个分叉的回购.然后我打开了拉取请求.pull请求列出了我想要的所有更改.

在审核了我的拉取请求之后,回购所有者希望我在接受之前做出一些更改.我已经在我的fork中进行了这些更改,现在如何使用这些更改更新pull请求(或者这不是我应该如何处理它)?

she*_*mer 556

你做得对了.拉取请求将自动更新.过程是:

  1. 开拉请求
  2. 根据您当地仓库中的反馈提交更改
  3. 推送到fork的相关分支

pull请求将自动在pull请求讨论的底部添加新提交(即,它已经存在,向下滚动!)

  • 太好了!我正在检查所有地方,但实际拉动请求.它的神奇,黑魔法,我不会质疑它. (69认同)
  • 这是在分支机构工作的一个很好的理由.例如,如果你总是推到掌握,你可能无意中添加到你以前的拉取请求. (54认同)
  • 这似乎不再是这种情况,即使它已经过去了.这是一个拉动请求的例子(https://github.com/toopay/bootstrap-markdown/pull/167)与分支本身相比(https://github.com/mhuggins/bootstrap-markdown/commits/支持 - 所有降价的库).好奇如何做到这一点,因为这个过程似乎已经发生了变化. (3认同)

jmu*_*jmu 74

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

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
Run Code Online (Sandbox Code Playgroud)

...现在,pull请求只包含一个提交.


关于变基的相关链接:

  • 这种方法的缺点是你在提交之前删除了你.这意味着如果在pull请求中发表评论,它们将丢失,并与原始提交一起消失. (11认同)
  • 提及rebase的Upvote.它有助于消除修订历史中的噪音. (2认同)

igo*_*orw 33

只需按下pull请求引用的分支即可.只要拉取请求仍然打开,它应该自动更新任何添加的提交.


Vik*_*ngh 10

我用以下步骤做到了:

  1. git reset --hard <commit key of the pull request>
  2. 我的代码改变了吗?
  3. git add
  4. git commit --amend
  5. git push -f origin <name of the remote branch of pull request>