如何更新分叉回购的请求?
所以我先分叉回购,然后对分叉回购做出承诺。 然后我打开了一个拉请求。 拉请求列出了我想要的所有更改。
在回顾了我的请求之后,回购所有者希望我在接受之前进行一些更改。 我已经在我的fork中进行了这些更改,现在如何使用这些更改更新pull请求(或者这不是我应该如何处理的)?
你做得对。 拉请求将自动更新。 这个过程是:
- 打开拉请求
- 根据您当地回购的反馈提交更改
- 推到你的叉子的相关分支
拉请求会自动在拉请求讨论的底部添加新的提交(即, 它已经在那里,向下滚动! )
在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:
- https://help.github.com/articles/about-git-rebase
- 把我的所有提交压缩成一个GitHub拉取请求
只需推送到请求引用的分支。 只要拉请求仍然打开,它应该自动更新任何添加的提交。
我使用下面的步骤做到了:
-
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>
如果在Windows上使用GitHub :
- 在本地进行更改。
- 打开GitHub,切换到本地仓库,双击仓库。
- 将分支(靠近窗口的顶部)切换到您创build拉取请求的分支(即比较的叉子侧的分支)
- 应该看到选项进入提交评论的权利,并提交更改到您当地的回购。
- 点击顶部的同步,除此之外,将您的提交从本地推送到GitHub上的远程分支。
- 拉取请求将随着额外的提交而自动更新。 这是因为被拉的请求代表你的分支的分歧。 如果你进入pull request页面(你和其他人可以对你的pull请求发表评论),那么Commits选项卡应该有你的额外提交。
这就是为什么在开始对自己进行更改之前,应该为每一组计划放入请求的更改创build一个分支。 这样,一旦你做出拉取请求,你就可以做另一个分支,继续工作在其他任务/function/错误修正上,而不会影响以前的拉取请求。