跳转至

Issue 与 Merge Request

这两个功能是传习社在 GitLab 上协作的主要方式:Issue 记录要做什么,Merge Request 把做完的代码合进去。

推荐流程

Issue
创建 feature / fix 分支
开发
Commit
Push
Merge Request
Code Review
Merge

Issue

Issue 用来记录一件需要跟进的事,常见类型:

  • Bug — 功能不正常,例如「登录后跳转到了错误页面」
  • Feature — 新功能或改进需求
  • Task — 具体待办,例如「补充部署说明」
  • 技术讨论 — 方案选型、设计取舍

写 Issue 时尽量包含:

  1. 你想做什么,或遇到了什么问题;
  2. 复现步骤或背景信息;
  3. 期望的结果。

示例:

标题:登录后跳转到空白页

描述:
在 Safari 中登录后停留在空白页,Chrome 正常。

复现步骤:
1. 打开 https://example.cx-studio.tech/login
2. 输入账号密码并提交
3. 页面变为空白

期望:跳转到个人主页。

不要把 Issue 当聊天软件

Issue 是任务和问题的记录,需要长期保留、可被检索。日常沟通请在社内群里进行,讨论出结论后再把结果写回 Issue。

创建分支

从最新的 main 出发,按改动类型命名分支:

git switch main
git pull
git switch -c fix/login-blank-page

分支命名参考 开发规范

提交 Merge Request

推送分支后:

  1. 打开 GitLab 仓库页面,点击 Create merge request
  2. 确认 Source branch 是你的分支,Target branchmain
  3. 填写标题,建议与主要改动一致,例如 fix: 修复登录后空白页问题
  4. 在描述中说明「做了什么、为什么这样做、如何验证」;
  5. 关联相关 Issue,例如在描述中写 Closes #12,合并后该 Issue 会自动关闭;
  6. 提交后等待 Reviewer 评审。

一个 MR 只解决一个问题

把无关的改动塞进同一个 MR 会让评审变得困难。如果开发过程中发现了别的问题,另开一个 Issue 和分支处理。

Code Review

评审人会查看代码并给出意见。收到意见后:

  • 直接在原分支上继续 commit 并 push,MR 会自动更新;
  • 对不认同的意见,回复说明理由,讨论清楚再改;
  • 所有意见解决后由评审人批准并合并。

Code Review 是协作流程,不是挑错。提意见和接受意见都以把代码改好为目标。

Merge 之后

git switch main
git pull
git branch -d fix/login-blank-page   # 删除本地已合并的分支

远程分支通常在合并时由 GitLab 自动删除;若未删除,可在 MR 页面手动删除。

相关阅读