我应该如何处理一个拉请求在BitBucket这需要一些调整



有人在BitBucket上给我发了一个pull request。所讨论的更改是在默认分支上提交的。在我合并之前,我想做一些调整,但更重要的是,我想发布这个变化的预览版本,让社区评估它,看看他们是否满意。

理想情况下我希望将更改拉入主repo,但将其放在分支上。做一些调整。像标记其他构建一样标记它,然后发布。然而,这似乎是不可能的:如果我理解正确的话,分支是"嵌入的",我不能将更改拉到另一个分支上。这是正确的吗?

如果是,我能做些什么呢?我可以拉出第二个头,然后将其合并到遗忘中,同时创建一个分支。或者我可以在一个分支上做这项工作,但这意味着在主仓库中不会有与此构建相关的标签。或者我应该做些别的事情?

注:更改本身是高质量的,这是而不是要求原作者改进它。

与其使用Bitbucket 'accept pull request',不如直接将更改拉入本地的repo。您可以使用rebase将提交(或一组提交)移动到指定的分支。然后只需将更改推送到主bitbucket repo。(并且可能拒绝bibucket pull请求,并附上注释,表示更改已推送到主repo)

例如:

如果你的回购是:bitbucket都/ProjectA MainRepoForProjectA

, pullrequest来自:bitbucket都/someuser MainRepoForProjectA

  1. pull from bitbucket/someuser/MainRepoMainRepoForProjectA
  2. 将新拉入的提交重新base到指定的分支。
  3. 做你想做的任何额外的改变。
  4. push到bitbucket/ProjectA/MainRepoMainRepoForProjectA

注意:如果您之前没有使用过rebase:

  1. 在TortoiseHg File -> Settings -> Extensions
  2. 中启用它
  3. 更新到你想要移动的分支的头部
  4. 右键单击要移动的更改的基础-> Modify History -> Rebase

这可能会有帮助:

http://www.electricmonk.nl/log/2014/03/31/test-a-pull-merge-request-before-accepting-on-bitbucket/

基本上,链接说要做以下事情:

  • git fetch https://bitbucket.org/myrepository/master somename
  • git checkout FETCH_HEAD
  • 检查代码并进行测试。
  • (如果代码被接受),git checkout master
  • git merge FETCH_HEAD
  • git push

文档中描述了接受拉取请求的操作;它会尝试合并,你会解决冲突。文档中确实提到可以在创建拉取请求时设置目标分支。但是由于你的分支还不存在,你的贡献者无法选择它。

所以你必须拉到你的本地机器,并移动一些提交到Hg的新分支,然后推到你的bitbucket。

务必阅读rebase文档,因为更改历史记录将影响贡献者的repo的有效性,他将不得不再次分叉以再次与您同步。如果他已经为你准备了一些高质量的代码,这就变得很麻烦了。

可以将拉取请求的代码拉为:

git fetch origin refs/pull-requests/$PR_NO/from:$LOCAL_BRANCH

最新更新