Issues 管理
Bug 跟踪与标签。
Issues 管理
这一课你将能做到
- 创建一份结构化 Issue(标题、标签、里程碑、负责人、复现步骤)
- 用标签(Label)与里程碑(Milestone)组织项目需求与缺陷
- 用「Closes #N」关键词让 PR 合并后自动关闭对应 Issue
为什么要学
Issues 是 GitHub 的「任务管理系统」,任何功能需求、bug 报告、技术讨论都从这里发起。不会用 Issues,团队就不知道你要做什么、优先级是什么、什么时候能上线。好的 Issues 管理能让项目从「混乱的 todo 列表」变成「清晰的作战地图」。
对初学者,Issues 也是参与开源的最佳入口:看到 good first issue 标签的任务,认领下来,就是一次完整的贡献经历。
先建立图像
Issue 的生命周期:
Open(待处理)
│
├─ 被认领,开始开发
▼
In Progress(进行中)
│
├─ 开发完成,发 PR
▼
Closed(已关闭)
├─ 已修复(PR 合并自动关闭)
├─ 无法复现
├─ 重复问题
└─ 不会修复(won't fix)
跟着做
步骤 1:创建 Issue
在仓库 Issues 标签页点「New issue」,填写:
**标题**:登录页验证码偶发加载失败
**环境**
- 浏览器:Chrome 120
- 系统:Windows 11
**复现步骤**
1. 访问 https://java-nav.example.com/login
2. 快速连续刷新 5 次
3. 第 3 次开始验证码区域空白
**期望行为**
每次都应正常加载验证码图片
**实际行为**
第 3 次起请求 `/api/captcha` 返回 429,图片不显示
**截图/日志**
[贴浏览器 Network 面板截图]
结构化的 Issue 让开发者不用来回追问。
步骤 2:打标签
创建时右侧栏选 Labels:
bug:缺陷enhancement:功能改进documentation:文档good first issue:适合新人priority:high/priority:medium/priority:lowstatus:needs-triage/status:in-progress
步骤 3:指派负责人与里程碑
右侧栏 Assignees 指派给自己或队友,Milestone 关联到版本(如 v1.1.0)。里程碑本质是「一组 Issue 的集合」,用于跟踪版本进度。
步骤 4:开发并关联
git switch -c fix/captcha-429
# 修代码...
git commit -m "fix(captcha): 增加验证码请求限流重试机制"
git push -u origin fix/captcha-429
步骤 5:PR 中关闭 Issue
发 PR 时在描述里写:
Closes #15
PR 合并后,#15 这个 Issue 自动关闭,并显示「由 #PR号 修复」的链接。这是 GitHub 自动化闭环的核心。
步骤 6:用看板管理
仓库 Projects 标签页创建看板,把 Issues 拖进「To do / In progress / Done」三列。这是轻量级项目管理,不用额外装 Jira。
步骤 7:高效搜索与过滤
掌握搜索语法能让你在海量 Issue 中快速定位:
is:issue is:open label:bug # 所有未关闭的 bug
is:issue is:open label:"good first issue" # 适合新人的任务
is:issue assignee:@me # 分配给我的
is:issue milestone:v1.1.0 # 某里程碑下所有任务
is:issue created:>2026-01-01 # 今年创建的
repo:octocat/Spoon-Knife is:issue is:open # 跨仓库搜索