You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何撤销误操作回滚的已合并Bitbucket Pull Request?

解决Bitbucket误回滚合并后PR的恢复问题

别慌,这个问题其实很好解决,咱们一步步来把代码恢复到回滚前的状态,同时处理掉那个显示错误的PR:

第一步:定位回滚的Commit哈希值

你已经提到能看到回滚对应的commit,先把这个commit的哈希值记下来(比如在Bitbucket的提交历史里复制那串字母加数字的ID)。

第二步:本地恢复目标分支状态

假设你之前合并PR到的是main分支(如果是其他分支,替换成对应的分支名):

  1. 切换到目标分支并拉取最新代码:
git checkout main
git pull origin main
  1. 撤销回滚操作(推荐用revert,安全不修改历史):
git revert 你的回滚Commit哈希值

执行后会弹出编辑器让你填写commit信息,默认的内容就足够清晰(一般会显示Revert "原来回滚commit的备注"),直接保存退出即可。

  1. 把恢复的提交推送到远程:
git push origin main

第三步:处理错误的PR

那个显示你之前的内容全被删除的新PR,直接关闭它就好——因为我们已经通过revert操作,让远程分支回到了回滚前的正确状态,这个PR已经没有意义了。

补充:如果允许强制推送的备选方案(不推荐公共分支)

如果你的团队分支规则允许强制推送,且确认回滚是最后一个提交、没有其他人在该分支做新修改,也可以用reset直接回退到回滚前的状态:

git checkout main
git pull origin main
git reset --hard HEAD~1  # 回退到上一个提交(即回滚前的状态)
git push origin main --force-with-lease

⚠️ 注意:这个方法会重写分支历史,可能导致其他协作者的本地分支和远程不一致,非必要不要用。

这样操作完成后,你的目标分支就完全恢复到了合并原PR后的状态,生产环境拉取代码就能拿到正确的内容了。

内容的提问来源于stack exchange,提问作者Geoff_S

火山引擎 最新活动