Bitbucket中Commit未带JIRA编号前缀,PR无法合并至master的解决咨询
解决Bitbucket PR合并按钮禁用问题(缺失JIRA编号前缀的Commit)
先澄清你的两个疑问
- 从master新建分支合并成单个Commit的方法可行,但没必要多建分支,直接在原Branch A上修改提交历史更高效。
- Commit压缩(squashing)完全适用这个场景,它可以修改分支的Commit历史,重写后远程分支的提交记录会被更新,不会再保留那个缺失JIRA编号的Commit。
具体解决方法(二选一即可)
方法1:仅修改有问题的单个Commit
- 切换到Branch A并拉取最新代码:
git checkout BranchA git pull origin BranchA - 执行交互式rebase,定位到有问题的Commit的前一个Commit(比如要修改倒数第2个Commit,就用
HEAD~2,或者直接写该Commit父节点的哈希值):git rebase -i HEAD~2 - 在弹出的编辑界面中,把有问题的Commit前的
pick改成reword(或简写r),保存退出。 - 进入Commit信息编辑页面,把内容改成带JIRA编号前缀的格式(比如
PROJ-456: 修复XX逻辑问题),保存退出。 - 因为重写了提交历史,需要强制推送远程分支:
git push origin BranchA --force - 回到Bitbucket刷新PR页面,合并按钮即可正常使用。
方法2:将所有Commit压缩为单个带JIRA编号的Commit
- 同样先切换到Branch A拉取最新代码:
git checkout BranchA git pull origin BranchA - 基于master分支执行交互式rebase:
git rebase -i origin/master - 在编辑界面中,保留第一个Commit的
pick,把其他所有Commit前的pick改成squash(或简写s),保存退出。 - 编辑新的合并后Commit信息,加上正确的JIRA编号前缀,保存退出。
- 强制推送远程分支:
git push origin BranchA --force - 刷新Bitbucket的PR页面即可。
注意事项
- 如果Branch A有其他开发者共同开发,强制推送会覆盖远程分支内容,操作前务必和团队成员沟通,让他们重新拉取代码。
- 确保使用的JIRA编号是项目关联的有效编号,避免再次触发校验失败。
内容的提问来源于stack exchange,提问作者pensee
相关产品推荐
相关产品推荐

