Issue 与 Merge Request¶
这两个功能是传习社在 GitLab 上协作的主要方式:Issue 记录要做什么,Merge Request 把做完的代码合进去。
推荐流程¶
Issue¶
Issue 用来记录一件需要跟进的事,常见类型:
- Bug — 功能不正常,例如「登录后跳转到了错误页面」
- Feature — 新功能或改进需求
- Task — 具体待办,例如「补充部署说明」
- 技术讨论 — 方案选型、设计取舍
写 Issue 时尽量包含:
- 你想做什么,或遇到了什么问题;
- 复现步骤或背景信息;
- 期望的结果。
示例:
标题:登录后跳转到空白页
描述:
在 Safari 中登录后停留在空白页,Chrome 正常。
复现步骤:
1. 打开 https://example.cx-studio.tech/login
2. 输入账号密码并提交
3. 页面变为空白
期望:跳转到个人主页。
不要把 Issue 当聊天软件
Issue 是任务和问题的记录,需要长期保留、可被检索。日常沟通请在社内群里进行,讨论出结论后再把结果写回 Issue。
创建分支¶
从最新的 main 出发,按改动类型命名分支:
分支命名参考 开发规范。
提交 Merge Request¶
推送分支后:
- 打开 GitLab 仓库页面,点击 Create merge request;
- 确认 Source branch 是你的分支,Target branch 是
main; - 填写标题,建议与主要改动一致,例如
fix: 修复登录后空白页问题; - 在描述中说明「做了什么、为什么这样做、如何验证」;
- 关联相关 Issue,例如在描述中写
Closes #12,合并后该 Issue 会自动关闭; - 提交后等待 Reviewer 评审。
一个 MR 只解决一个问题
把无关的改动塞进同一个 MR 会让评审变得困难。如果开发过程中发现了别的问题,另开一个 Issue 和分支处理。
Code Review¶
评审人会查看代码并给出意见。收到意见后:
- 直接在原分支上继续 commit 并 push,MR 会自动更新;
- 对不认同的意见,回复说明理由,讨论清楚再改;
- 所有意见解决后由评审人批准并合并。
Code Review 是协作流程,不是挑错。提意见和接受意见都以把代码改好为目标。
Merge 之后¶
远程分支通常在合并时由 GitLab 自动删除;若未删除,可在 MR 页面手动删除。