Bitbucket删除分支后PR显示已合并?正确操作咨询
Bitbucket PR 显示已合并但实际未合并的原因及正确操作
这是预期行为吗?
这是Bitbucket机制导致的误判,不属于合理的预期行为。当你删除PR关联的特性分支时,系统会检查该分支的提交是否存在于目标分支(master)。由于你的特性分支基于master的旧提交创建,系统误将这些基础提交当成已合并到master的内容,因此把PR标记为“已合并”,但实际上你特性分支的新增修改根本没合并到master。
正确操作方式
处理PR冲突的标准流程
- 拉取最新master到本地:
git checkout master && git pull - 切回特性分支并合并master变更:
git checkout feature-branch git merge master - 手动解决合并冲突,提交冲突解决结果后推送到远程:
推送后PR会自动同步更新,冲突标记会消失,无需删除分支。git add . git commit -m "Resolve merge conflicts with master" git push
误删分支后的补救步骤
- 从Bitbucket的PR页面提交记录或本地
git reflog中找到特性分支最后一次提交的哈希值 - 基于该哈希重建分支:
git checkout -b feature-branch <提交哈希值> - 按照上面的合并master、解决冲突、推送步骤操作,PR会重新关联到重建后的分支,状态恢复正常。
替换PR关联分支的正确方法
如果需要用包含master新变更的新分支替换旧分支,无需删除旧分支:
- 基于最新master创建新分支:
git checkout master && git pull && git checkout -b new-feature-branch - 将旧分支的修改Cherry-pick到新分支(解决可能的冲突):
git cherry-pick <旧分支提交哈希值> - 推送新分支到远程后,在Bitbucket的PR设置中找到“更改源分支”选项,将PR的源分支切换为新分支即可,旧分支可后续清理。
内容的提问来源于stack exchange,提问作者PaulErly
相关产品推荐
相关产品推荐

