如何更新分叉回购的请求?

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

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

你做得对。 拉请求将自动更新。 这个过程是:

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

拉请求会自动在拉请求讨论的底部添加新的提交(即, 它已经在那里,向下滚动!

在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 

…现在拉请求只包含一个提交。


相关链接关于rebasing:

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

我使用下面的步骤做到了:

  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>

如果在Windows上使用GitHub

  1. 在本地进行更改。
  2. 打开GitHub,切换到本地仓库,双击仓库。
  3. 将分支(靠近窗口的顶部)切换到您创build拉取请求的分支(即比较的叉子侧的分支)
  4. 应该看到选项进入提交评论的权利,并提交更改到您当地的回购。
  5. 点击顶部的同步,除此之外,将您的提交从本地推送到GitHub上的远程分支。
  6. 拉取请求将随着额外的提交而自动更新。 这是因为被拉的请求代表你的分支的分歧。 如果你进入pull request页面(你和其他人可以对你的pull请求发表评论),那么Commits选项卡应该有你的额外提交。

这就是为什么在开始对自己进行更改之前,应该为每一组计划放入请求的更改创build一个分支。 这样,一旦你做出拉取请求,你就可以做另一个分支,继续工作在其他任务/function/错误修正上,而不会影响以前的拉取请求。