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

Revert a merged pull request on Bitbucket

我创建了拉取请求并将其合并到错误的分支。我怎样才能恢复它?

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

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

我正在处理三个分支:masterdevcreate-aliascreate-aliasdevdevmaster 建立:master -> dev -> create-alias。问题是我从 create-alias 发出了拉取请求,我确实将它合并到 master 而不是 dev.

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

你能给我写下关于谁逐步还原它的信息吗?

据我所知:

  1. 结账时间 master
  2. revert -m 1 6ee20f9.
  3. 推。
  4. create-alias 结帐并继续工作。

不是吗?

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

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

因此,您必须在 Git 中恢复合并。首先,找到合并提交的 SHA 哈希。

在命令行中,这是:

git checkout <branch>
git pull
git log

然后,我们还原合并提交并推送它:

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

在 SourceTree 中,首先检查有问题的分支,然后 Pull。在日志 window 中找到合并提交,然后右键单击它,然后单击 将 SHA-1 复制到剪贴板...。然后转到 操作 --> 在终端中打开 。终端打开后,输入:

git revert -m 1 <SHA-1 (from clipboard)>
git push

不幸的是,SourceTree 没有办法简单地右键单击并恢复合并,但是 feature request exists for it

Bitbucket 现在发布了 'Merge Pull Request' 功能。 关注 this link 了解更多。

Bitbucket 现在在 Pull Requests 上有一个 "revert" 按钮。

请注意,它不会自动更新原始 PR 合并到其中的分支。它创建了一个新分支,其中包含一个还原 PR 的提交:

然后您可以从此分支创建 PR 并合并它。

使用 bitbucket,我们无法还原合并的拉取请求。拉取请求中存在的还原选项将创建一个具有新头的新分支(在此提交之前)。该分支稍后必须合并到 master/release 分支中。这一切都是官方传达的Bitbucket doc