温馨提示×

ubuntu gitlab合并请求怎么做

小樊
35
2025-12-12 20:55:10
栏目: 智能运维

Ubuntu 下使用 GitLab 合并请求全流程

一 准备与前提

  • Ubuntu 上准备好本地开发环境:安装 Git 并配置好 SSH 密钥,能从命令行访问你的 GitLab 项目(克隆、推送)。
  • 你的账号需要对项目有创建 Merge Request(MR) 的权限;目标分支(如 main/develop)通常受保护,需通过 MR 合并。
  • 建议先在本地约定好分支命名(如 feature/bugfix/),便于审查与自动化流程。

二 创建合并请求的两种方式

  • 方式 A 命令行推送后创建

    1. 基于目标分支创建并切换到功能分支:
      git checkout -b feature/your-feature
      
    2. 开发完成后提交并推送到远端同名分支:
      git add .
      git commit -m "feat: 实现某某功能"
      git push origin feature/your-feature
      
    3. 推送成功后,命令行会输出一个可点击的链接,或前往项目页面点击 Merge Requests → New merge request,选择源分支(feature/your-feature)与目标分支(如 main),填写标题、描述、指派 AssigneeReviewerMilestoneLabels 等,然后 Create merge request。也可在 MR 创建页直接看到该分支的提交、流水线、文件变更预览。
  • 方式 B 在 GitLab UI 中直接创建

    • 从项目左侧进入 代码 → 合并请求 → 新建合并请求,选择源/目标分支并继续。
    • 添加、编辑或上传文件 的提交界面,填写提交信息,选择目标分支,勾选 使用这些更改创建新的合并请求,提交后会直接进入 MR 创建页。
    • 也可在 代码 → 分支 页面新建分支后,于文件列表上方点击 创建合并请求 一键发起。

三 审查与冲突处理

  • 代码审查:团队成员在 MR 页面进行 评论、建议更改、批准(Approve) 等协作;必要时可指派多个 Reviewer 并设置 批准规则
  • 冲突解决(本地 rebase 方式,推荐保持线性历史)
    1. 更新目标分支并变基到功能分支:
      git checkout main
      git pull origin main
      git checkout feature/your-feature
      git rebase main
      # 如有冲突,逐个文件解决,然后
      git add <冲突文件>
      git rebase --continue
      
    2. 将更新后的功能分支推送到远端(可能需要强制推送,请谨慎):
      git push --force-with-lease origin feature/your-feature
      
    3. 回到 MR 页面,冲突解决后按项目要求通过流水线/审批,再点击 Merge 完成合并。若采用“合并提交”方式,也可用 git merge main 解决冲突后 git push

四 合并完成后的清理与常见问题

  • 清理:合并后可删除已合并的远端功能分支(MR 页面或 代码 → 分支 中操作),保持仓库整洁。
  • 撤销已合并的 MR:在 MR 页面使用 Revert 生成反向提交;或在本地执行:
    git revert -m 1 <合并提交HASH>
    git push origin main
    
  • 常见问题
    • 每个分支只能有 一个打开的 MR;若需新 MR,请先关闭现有 MR 或新建分支。
    • Fork 贡献时,源分支选择你的 Fork,目标分支选择 上游项目 的对应分支,再 比较分支并继续 创建 MR。
    • 议题(Issue) 创建 MR:在议题底部选择 创建合并请求,可自动关联议题,MR 合并后议题可按规则自动关闭(如描述中包含 Closes #ID)。

0