You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git分支异常覆盖master分支的原因及相关操作疑问

嘿,咱们来一步步拆解你遇到的这些Git和BitBucket的问题,帮你理清来龙去脉:

1. 为什么PR提交显示“REMOVED”,且master与工作分支内容完全一致?

这核心原因是你的工作分支内容已经被合并到master了,结合你们用的「Squash, fast-forward only」合并策略,具体过程是这样的:

  • 当你的同事误把工作分支合并到master(而不是反过来),因为你们的策略是「fast-forward only」,如果master和工作分支之间没有冲突,Git会直接把master的指针“快进”到工作分支的最新提交上——这就导致master的代码和工作分支完全同步。
  • 而BitBucket里PR的提交标记为「REMOVED」,本质是这些提交已经被整合进master的历史了,PR的目标分支(master)已经包含了这些变更,所以系统会标记它们为已移除(不再需要通过这个PR来合并)。
2. 开启「Prevent changes without a pull request」后,工作分支还能合并到master吗?

答案是有可能,分两种场景:

  • 权限绕过:如果你的同事是项目管理员或者拥有「绕过PR直接修改master」的权限,他可以在本地执行以下操作,BitBucket的规则不会阻止:
    git checkout master
    git merge --ff-only your-working-branch
    git push origin master
    
  • 误操作PR:同事本来想把master合并到你的工作分支,结果在BitBucket创建PR时选错了源分支和目标分支(把工作分支设为源,master设为目标),然后该PR被正常批准合并了——这种通过PR的合并是符合规则的,所以会成功把工作分支内容合并到master。
3. 为什么旧PR显示你“远程合并”了?

这大概率是BitBucket的操作日志关联或者误操作导致的,几种可能性:

  • 误触合并按钮:你在修复回滚的过程中,可能不小心打开了旧PR,误点击了合并按钮(虽然此时master已经和分支内容一致,但BitBucket可能会记录这次操作,标记你为合并者)。
  • 日志关联错误:当你通过回滚PR把master恢复正常后,BitBucket的系统可能把回滚操作的记录错误关联到了旧PR上,导致显示你合并了旧PR。
  • 权限共享:如果你的同事使用了你的账号权限来合并PR(比如你曾授权过,或者共享了登录凭证),日志会显示你的名字,但这种情况概率较低。
验证建议

你可以通过以下方式确认具体过程:

  • 查看本地Git日志,理清分支合并历史:
    git log --oneline --graph master your-working-branch
    
  • 登录BitBucket查看项目的审计日志,能看到谁在什么时候修改了master分支,以及所有PR的创建、合并操作记录。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:22:53