如何从forked repo更新pull请求?

最后都变了- 提交于 2020-01-08 19:52:06

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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

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


#1楼

如果在Windows上使用GitHub

  1. 在本地进行更改。
  2. 打开GitHub,切换到本地存储库,双击存储库。
  3. 将分支(靠近窗口顶部)切换到您从中创建拉取请求的分支(即比较的fork侧的分支)
  4. 应该看到右边输入提交注释的选项,并提交对本地仓库的更改。
  5. 单击顶部的同步,除其他外,将您的提交从本地推送到GitHub上的远程分支。
  6. 拉取请求将通过附加提交自动更新。 这是因为pull请求表示fork分支的diff。 如果您转到拉取请求页面(您和其他人可以对您的拉取请求发表评论的页面),则“提交”选项卡应该包含您的其他提交。

这就是为什么在开始更改自己的更改之前,应该为计划放入拉取请求的每组更改创建一个分支。 这样,一旦你发出了拉取请求,你就可以创建另一个分支并继续处理其他任务/功能/ bug修复,而不会影响之前的拉取请求。


#2楼

在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

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


关于变基的相关链接:


#3楼

我用以下步骤做到了:

  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>

#4楼

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


#5楼

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

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!