【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
所以我首先分叉了一个回购,然后提交了一个分叉的回购。 然后我打开了拉取请求。 pull请求列出了我想要的所有更改。
在审核了我的拉取请求之后,回购所有者希望我在接受之前做出一些更改。 我已经在我的fork中进行了这些更改,现在如何使用这些更改更新pull请求(或者这不是我应该如何处理它)?
#1楼
如果在Windows上使用GitHub :
- 在本地进行更改。
- 打开GitHub,切换到本地存储库,双击存储库。
- 将分支(靠近窗口顶部)切换到您从中创建拉取请求的分支(即比较的fork侧的分支)
- 应该看到右边输入提交注释的选项,并提交对本地仓库的更改。
- 单击顶部的同步,除其他外,将您的提交从本地推送到GitHub上的远程分支。
- 拉取请求将通过附加提交自动更新。 这是因为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楼
我用以下步骤做到了:
-
git reset --hard <commit key of the pull request>
- 我的代码改变了吗?
-
git add
-
git commit --amend
-
git push -f origin <name of the remote branch of pull request>
#4楼
只需按下pull请求引用的分支即可。 只要拉取请求仍然打开,它应该自动更新任何添加的提交。
#5楼
你做得对了。 拉取请求将自动更新。 过程是:
- 开拉请求
- 根据您当地仓库中的反馈提交更改
- 推送到fork的相关分支
pull请求将自动在pull请求讨论的底部添加新提交(即, 它已经存在,向下滚动! )
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3155023