Ubuntu 下使用 GitLab 合并请求全流程
一 准备与前提
- 在 Ubuntu 上准备好本地开发环境:安装 Git 并配置好 SSH 密钥,能从命令行访问你的 GitLab 项目(克隆、推送)。
- 你的账号需要对项目有创建 Merge Request(MR) 的权限;目标分支(如 main/develop)通常受保护,需通过 MR 合并。
- 建议先在本地约定好分支命名(如 feature/、bugfix/),便于审查与自动化流程。
二 创建合并请求的两种方式
-
方式 A 命令行推送后创建
- 基于目标分支创建并切换到功能分支:
git checkout -b feature/your-feature
- 开发完成后提交并推送到远端同名分支:
git add .
git commit -m "feat: 实现某某功能"
git push origin feature/your-feature
- 推送成功后,命令行会输出一个可点击的链接,或前往项目页面点击 Merge Requests → New merge request,选择源分支(feature/your-feature)与目标分支(如 main),填写标题、描述、指派 Assignee、Reviewer、Milestone、Labels 等,然后 Create merge request。也可在 MR 创建页直接看到该分支的提交、流水线、文件变更预览。
-
方式 B 在 GitLab UI 中直接创建
- 从项目左侧进入 代码 → 合并请求 → 新建合并请求,选择源/目标分支并继续。
- 在 添加、编辑或上传文件 的提交界面,填写提交信息,选择目标分支,勾选 使用这些更改创建新的合并请求,提交后会直接进入 MR 创建页。
- 也可在 代码 → 分支 页面新建分支后,于文件列表上方点击 创建合并请求 一键发起。
三 审查与冲突处理
- 代码审查:团队成员在 MR 页面进行 评论、建议更改、批准(Approve) 等协作;必要时可指派多个 Reviewer 并设置 批准规则。
- 冲突解决(本地 rebase 方式,推荐保持线性历史)
- 更新目标分支并变基到功能分支:
git checkout main
git pull origin main
git checkout feature/your-feature
git rebase main
# 如有冲突,逐个文件解决,然后
git add <冲突文件>
git rebase --continue
- 将更新后的功能分支推送到远端(可能需要强制推送,请谨慎):
git push --force-with-lease origin feature/your-feature
- 回到 MR 页面,冲突解决后按项目要求通过流水线/审批,再点击 Merge 完成合并。若采用“合并提交”方式,也可用
git merge main 解决冲突后 git push。
四 合并完成后的清理与常见问题