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

如何在Bitbucket中创建排除指定旧提交的Pull Request?

在Bitbucket创建Pull Request时排除指定旧提交的方法

Bitbucket网页端没有直接在创建PR时排除单个提交的功能,要实现这个需求,得先通过Git本地操作调整分支内容,再推送分支创建PR,具体步骤如下:

  • 获取目标提交哈希
    先在Bitbucket仓库的提交历史里,找到那个带红色删除线的旧提交的完整哈希值(比如abc1234)。

  • 创建清理后的新分支
    假设你要合并到main分支,先拉取最新的目标分支代码:

    git checkout main
    git pull origin main
    

    基于最新的目标分支创建一个新分支,用于提交干净的PR:

    git checkout -b feature/cleaned-pr
    
  • 迁移需要保留的提交
    找到你想保留的所有提交(排除要移除的那个),用cherry-pick把它们逐个迁移到新分支:

    git cherry-pick def5678 ghi9012 jkl3456
    

    这里的def5678等是你要保留的提交哈希,注意按提交的先后顺序执行。

    如果你要排除的提交在原功能分支的提交序列中间,也可以用交互式变基来移除它:
    切换回原功能分支:

    git checkout feature/original
    git rebase -i HEAD~N
    

    其中N是包含目标提交在内的最近提交数量。在弹出的编辑器里,把要排除的那行开头的pick改成drop,保存退出完成变基。之后推送到远程(如果分支已被他人拉取,强制推送前要和团队沟通):

    git push origin feature/original --force-with-lease
    
  • 创建干净的Pull Request
    把清理后的分支推送到Bitbucket后,在仓库界面选择该分支作为源分支,目标分支选你要合并的分支,创建PR即可。此时PR里就不会包含那个被排除的旧提交了。

补充:如果红色删除线的提交是通过git revert生成的撤销提交,合并这个PR后会自动抵消原提交的效果;但如果是要彻底从PR的提交记录里移除该提交,还是用上面的分支清理方法更直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:46:04