如何撤消 Bitbucket 上的合并?

问题描述 投票:0回答:6

我已经创建了一个合并(到“master”分支),现在位于 Bitbucket 存储库上。长话短说:我需要撤消该合并。

我知道您可以在 Github 站点本身执行此操作,但 Bitbucket 没有该功能。我不清楚如何使用 Git 做到这一点而不造成混乱。

git bitbucket
6个回答
122
投票

您需要首先将存储库克隆到本地系统上(您可以从 Bitbucket 存储库的“概述”页面获取 SSH 或 HTTPS 格式的存储库 URL):

git clone [email protected]:my/repo.git
-or-
git clone https://[email protected]/my/repo.git

git checkout master

..然后恢复最近的提交。首先列出可用的提交:

git log

..然后选择合并之前的提交:

git reset --hard 72ead1c4c1778c23c277c4f15bbb68f3bb205f54

.. 其中哈希是合并之前提交的哈希(来自日志)。最后,将更改强制推送回 Bitbucket,覆盖历史记录。

git push -f

当然,如果存储库是共享的,并且其其他用户已拉取您最近的提交并在其之上构建,他们将不会高兴。因此,在这种情况下,请务必通知每个人您正在做什么。

revert
,正如其他答案中提到的,是另一种选择;它保留您所做的提交,但进一步修改存储库(使用新提交),以撤消您所做的更改。是否要使用
revert
取决于您是否希望提交中的信息保留在存储库历史记录中。

有关撤消 git 中的更改的更多详细信息,请参阅 Atlassian 的优秀教程页面


24
投票

Bitbucket 于 2017 年实现了“恢复拉取请求”功能。

要恢复拉取请求:

  1. 从拉取请求中,单击右上角的“恢复”按钮。 (可选)从恢复拉取请求对话框中,更改您要创建的新分支的分支名称。
  2. 单击“恢复”按钮。 单击“恢复”后,Bitbucket 将创建新分支。即使您取消拉取请求,恢复分支仍保留在存储库中。
  3. 创建拉取请求页面将打开,并将还原分支作为源。添加审阅者并进行其他更改后,单击“创建”。

来源:文档

BitBucket Revert pull request


6
投票

我建议改为执行

revert
,因为您要恢复公共仓库。

git revert HEAD
git push -f origin

5
投票

撤消提交的更改:

git revert <commit id>


4
投票

首先,在本地计算机上,在您合并到的分支上(例如

master
):

git revert -m 1 HEAD

或:

git revert -m 1 <merge commit hash>

然后推至原点。

或者,如果您无法直接推送到 master,请在恢复之前先在 master 上创建一个新分支,然后使用这个新分支针对 master 推送并创建一个新 PR,并在 bitbucket 上合并。


0
投票

单击“提交”选项卡 > 拉取请求编号 > 在此处输入图像描述

单击 ... > 恢复 在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.