错误合并分支后如何将BitBucket远端master分支回退到指定旧commit?
你执行强制推送没有生效的核心原因是BitBucket对master分支默认开启了分支保护规则,拦截了改写提交历史的强制推送操作,可按以下步骤操作完成回退:
步骤1:确认本地master分支状态
先验证本地分支确实处于目标提交,避免推错版本:
git checkout master git log --oneline -1
确认输出结果的首行以4f9ff开头,提交信息为New model classes added即可。
步骤2:临时关闭BitBucket master分支保护规则
- 登录BitBucket进入对应仓库的「设置」页面
- 在左侧菜单找到「分支权限」选项
- 找到针对
master分支的保护规则,临时关闭两个配置项:- 阻止改写历史
- 阻止强制推送
- 确认你的账号持有
master分支的写入权限
步骤3:重新执行强制推送
两种命令均可,任选其一执行即可:
# 直接推送本地master分支 git push --force origin master # 或指定commit hash推送(确认hash前缀唯一即可) git push --force origin 4f9ff27:master
步骤4:后续操作
推送成功后,立即重新开启master分支的原有保护规则,避免再次出现误操作。
同时通知团队所有成员同步远端的master分支,避免本地持有旧的错误提交的成员再次将问题代码推送到远端:
# 团队成员本地同步命令 git checkout master git fetch origin git reset --hard origin/master
内容的提问来源于stack exchange,提问作者PeakGen
相关产品推荐
相关产品推荐

