恢复Bitbucket上的合并拉取请求

Jor*_*rdi 36 git bitbucket atlassian-sourcetree

我创建了一个pull请求,并将它合并到一个错误的分支.我怎样才能还原呢?

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

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

我有三个分支我的工作:master,devcreate-alias.create-alias从建立devdev来自master:master -> dev -> create-alias.问题是我提出了拉取请求,create-alias而我确实将其合并master而不是dev.

我现在在create-alias分公司工作.最后一次提交create-alias6ee20f9和合并提交masterbe36f72.

你能不能给我写一些关于谁一步一步还原呢?

到目前为止,我已经弄明白了:

  1. 结帐master.
  2. 还原-m 1 6ee20f9.
  3. 推.
  4. 结帐create-alias并继续工作.

不是吗?

Wil*_*ill 65

不幸的是,截至本文撰写时,Bitbucket上没有"Revert Pull Request"功能,但是存在功能请求.

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

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

在命令行上,这是:

git checkout <branch>
git pull
git log
Run Code Online (Sandbox Code Playgroud)

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

git revert -m 1 <SHA-1>
git push
Run Code Online (Sandbox Code Playgroud)

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

git revert -m 1 <SHA-1 (from clipboard)>
git push
Run Code Online (Sandbox Code Playgroud)

遗憾的是,SourceTree没有办法简单地右键单击并还原合并,但是存在功能请求.


okn*_*ate 12

Bitbucket现在在Pull Requests上有一个"恢复"按钮.

在此输入图像描述

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

在此输入图像描述

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

  • 这很好,但是如果您将功能分支合并到 master 中,恢复 master 然后将相同的功能分支合并到开发中,并且稍后想要合并到 master 中,该怎么办。因为这些提交都在历史记录中,所以在尝试合并时它们将被还原所取代。有替代策略吗? (3认同)
  • @DavidHempy 它可能只在云版本上可用,我可以在那里看到它。请注意,如果您使用“新”PR 视图,则必须切换回旧版本才能看到此按钮 (2认同)
  • 我现在真的很想要这个按钮,但我们本地的 bitbucket 还没有:( (2认同)

小智 9

Bitbucket现在发布了"合并拉取请求"功能.请点击此链接了解更多信息.