在Bitbucket上恢复合并的拉取请求

时间:2016-07-11 08:13:45

标签: git bitbucket atlassian-sourcetree

我已经创建了拉取请求,并且已将其合并到错误的分支。我怎样才能还原呢?

到目前为止,我一直在想看看那里,我能够硬重置目标分支......但是,origin存储库中的pull请求怎么样?

我使用Bitbucket并且我已经从SourceTree创建了拉取请求(打开Bitbucket页面)。

我正在处理三个分支机构:masterdevcreate-aliascreate-alias来自devdev来自mastermaster -> dev -> create-alias。问题是我从create-alias发出了拉取请求,我确实将其合并到master而不是dev

我现在正在create-alias分支机构工作。 create-alias上的最后一次提交是6ee20f9master上的合并提交是be36f72

你能否告诉我一步一步将其归还给谁?

到目前为止,我已经能够弄清楚:

  1. 结帐master
  2. revert -m 1 6ee20f9
  3. 推。
  4. 结帐create-alias并继续工作。
  5. 不是吗?

3 个答案:

答案 0 :(得分:63)

不幸的是,没有" Revert Pull Request"截至撰写本文时,Bitbucket上的功能,但feature request exists for it

注意:在继续操作之前,请确保您的工作副本干净,没有未提交或未按下的更改。

所以,你必须在Git中恢复合并。首先,找到合并提交的SHA哈希。

在命令行中,这是:

http://site/api/members/myAccount/update
http://site/api/members/myAccount/get/12345
http://site/api/members/contacts/getByOwnerId/12345

然后,我们恢复合并提交并推送它:

git checkout <branch>
git pull
git log

在SourceTree中,首先检查相关分支,然后。在日志窗口中找到合并提交,然后右键单击它,然后单击将SHA-1复制到剪贴板... 。然后转到操作 - &gt;在终端中打开。终端打开后,键入:

git revert -m 1 <SHA-1>
git push

不幸的是,SourceTree没有办法简单地右键单击并还原合并,只有feature request exists for it

答案 1 :(得分:9)

Bitbucket现在有&#39; Merge Pull Request&#39;功能发布。 请关注this link了解详情。

答案 2 :(得分:8)

Bitbucket现在在“拉取请求”上有一个“还原”按钮。

enter image description here

请注意,它不会自动更新原始PR合并到的分支。它使用提交来还原PR来创建一个新分支:

enter image description here

然后您可以从此分支创建PR,然后将其合并。