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

如何通过Gitlab REST API及命令行创建分叉仓库至主仓库的合并请求

命令行创建分叉仓库到主仓库的Gitlab合并请求

你可以通过两种方式在命令行完成这个操作,Gitlab的Merge Request API实际上是支持source_project_id参数的,可能是你之前查看的文档版本存在偏差:

方法一:使用curl调用Gitlab REST API

提前准备好以下信息:

  • 主仓库的ID(target_project_id)
  • 分叉仓库的ID(source_project_id)
  • 分叉仓库的源分支名(不能是受保护的master,需从你创建的开发分支发起)
  • 主仓库的目标分支名(同样不能是受保护的master,需合并到开发分支后再走官方流程合并到master)
  • 拥有API权限的Gitlab访问令牌
  • 你的Gitlab实例域名(如gitlab.com或私有部署域名)

执行以下命令(替换所有占位符内容):

curl --request POST \
  --url "https://你的Gitlab域名/api/v4/projects/主仓库ID/merge_requests" \
  --header "PRIVATE-TOKEN: 你的Gitlab访问令牌" \
  --header "Content-Type: application/json" \
  --data '{
    "source_project_id": 分叉仓库ID,
    "source_branch": "你的开发分支名",
    "target_branch": "主仓库开发分支名",
    "title": "合并分叉仓库的开发分支变更",
    "description": "描述本次合并的内容、改动点等"
  }'

方法二:使用Gitlab官方CLI工具glab

glab是Gitlab官方提供的命令行工具,操作更简洁:

  1. 先安装glab并完成配置(关联你的Gitlab实例,配置访问令牌)
  2. 执行以下命令(支持用项目路径代替ID,比如your-username/main-repo):
glab mr create \
  --target-project 主仓库ID或路径 \
  --source-project 分叉仓库ID或路径 \
  --source-branch 你的开发分支名 \
  --target-branch 主仓库开发分支名 \
  --title "合并分叉仓库的开发分支变更" \
  --description "描述本次合并的内容、改动点等"

注意事项

  • 确保你的访问令牌拥有足够权限:至少对主仓库有create_merge_requests权限,对分叉仓库有读取权限
  • 因为master分支受保护,必须从双方的非master开发分支发起合并请求,后续再通过主仓库的保护流程合并到master

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:27:25