Bitbucket DataCenter中Git PR快进合并失败问题咨询
Bitbucket DataCenter 快进合并失败的原因及预期行为分析
这是预期行为,核心和提交/合并日期无关,完全由Git快进合并的规则决定:
Git的「fast-forward only」合并要求源分支(你的Branch-B)必须是目标分支(master)的直接后代——直白说就是,master上的所有提交都得包含在Branch-B的提交历史里。
看你的分支拓扑逻辑:
- 你创建Branch-B时,master还没有commit1,所以Branch-B的起点是「旧master」,后续新增了commit2,历史链为:旧master → commit2
- 之后commit1被合并到master,master的历史链变成:旧master → commit1
此时master和Branch-B处于分叉状态:master有Branch-B没有的commit1,Branch-B有master没有的commit2,不存在谁完全包含谁的关系,自然满足不了快进合并的前提,Bitbucket的报错完全符合Git的规则。
可行的解决方式:
- 将master的commit1合并(或rebase)到你的Branch-B中,让Branch-B的历史链变为「旧master → commit1 → commit2」,此时Branch-B成为master的直接后代,就能用快进方式合并
- 若仓库规则允许,关闭「fast-forward only」限制,直接执行普通合并(会生成一个合并提交)
内容的提问来源于stack exchange,提问作者jack.chen.job
相关产品推荐
相关产品推荐

