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

如何不推送远程分支,通过commit hash调用Bitbucket API创建PR

核心前提

Bitbucket 创建PR的底层逻辑要求源提交必须已经存在于远程仓库中,且fromRef必须指向一个远程可识别的引用ID,接口本身不支持直接上传本地提交内容,因此你需要先将本地提交推送到远程的非分支引用路径,该路径不会被识别为常规远程分支,不会出现在公共分支列表中,完全符合不允许创建新远程分支的要求。

调整后的操作流程

  1. 获取本地最新提交的完整哈希值:
COMMIT_HASH=$(git rev-parse HEAD)
  1. 直接推送单个提交到远程临时引用路径,无需创建对应远程分支:
git push origin ${COMMIT_HASH}:refs/temp-pr/${COMMIT_HASH}
  1. 调整接口请求的formData参数,将fromRef.id替换为上述临时引用路径即可:
{
  "title": "New PR for $somebranch",
  "fromRef": {
    "id": "refs/temp-pr/${COMMIT_HASH}"
  },
  "toRef": {
    "id": "refs/heads/$somebranch"
  }
}
  1. 调用接口创建PR的curl命令示例:
curl -v ${pullRequestRestUrl} -u user:pass -X POST --header 'Content-Type: application/json' --data '{"title": "New PR for '"$somebranch"'","fromRef": {"id": "refs/temp-pr/'"$COMMIT_HASH"'"}, "toRef": {"id": "refs/heads/'"$somebranch"'"}}'

后续清理

PR合并完成后可手动删除临时引用,避免冗余:

git push origin --delete refs/temp-pr/${COMMIT_HASH}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:24:04