DAG总览 / 组目录 / 项目管理

问题(Issue)

G04Layer 4
目录:前置概念账号与仓库版本管理协作项目管理自动化部署工具生态
层导航:L0L1L2L3L4 当前L5L6L7L8
上游 · 理解本功能前需先掌握的(1):
下游 · 依赖/承接本功能的(3):
前置依赖包含从属概念升级流程承接 边方向 = 学习顺序(A→B 表示先学 A 再学 B)

为什么需要它

心智模型

项目里有 bug、想加新功能、有件事要做……这些念头不记下来就会忘。问题(Issue)就是 GitHub 上的「待办清单 + 讨论帖」:一件事开一个 Issue,大家在里面讨论、认领、标记状态。它把散落在聊天里的想法,变成项目里可追踪、可负责的工作项。

历史背景 · 它为什么诞生诞生于 2009
诞生早期开源协作缺乏统一的缺陷/任务跟踪方式,代码库与问题管理分离。GitHub 2009-04-15上线内置Issue Tracker,让仓库拥有独立Issues标签页,支持标签、拖拽排序、投票、提交信息关闭issue,把问题管理首次带进代码托管平台。
演进从简单问题列表演变为完整项目管理平台:2011 Issues 2.0加入assignee/milestone/搜索;2014重建搜索过滤;2021-06推出全新GitHub Issues(项目表格、自定义字段、看板),可像电子表格一样规划、排序、分组issue与PR。
历史教训
平台型工具的价值在于把相邻工作流聚合到同一处:最初只是bug记录,却因持续沉淀规划能力最终成为项目管理中枢。小功能可沿"单一痛点→逐步加深"路径长成核心产品。

功能介绍

问题(Issue)是 GitHub 的追踪工作单元。官方定义:你可以在仓库里创建 Issue 来规划、讨论和追踪工作(You can create issues in your repository to plan, discuss, and track work)。一个 Issue 就是一条可讨论的工作项,常见的用途是报告 bug(Bug)、提议新特性(Feature)、或登记任务。每个 Issue 可以贴上标签(Labels)分类,比如「bug」「增强」「待处理」;可以指派给负责人(Assignees);可以挂到里程碑(Milestone)上;还可以被拉取请求(Pull Request)通过 fixes: 关键词自动关联和关闭。GitHub 还支持子问题(Sub-issues),把大任务拆成小任务形成层级。Issue 与 PR 之间存在引用网络:在 PR 或 Issue 里用 #编号 就能互相引用,形成完整的变更脉络。可以说,Issue 是项目的「问题库」,任何想法都可以先变成 Issue,再慢慢变成代码。

核心术语

问题(Issue)标签(Labels)负责人(Assignees)里程碑(Milestone)子问题(Sub-issues)

适用场景

怎么操作(网页 vs 命令行 双轨)

🖱️ 网页操作 (GitHub.com)
  • 进入仓库,点击 Issues 标签 → New issue。
  • 选择模板(Bug report / Feature request 等)或留空,填写标题和详细描述。
  • 在右侧面板添加标签(Labels)、指派负责人(Assignees)、挂里程碑(Milestone)。
  • 点击 Submit new issue 发布;处理完后可关闭或重新打开 Issue。
⌨️ 命令行 (进阶)
  • gh issue create --title "修复登录 bug" --body "描述问题" --label bug --assignee 用户名
  • gh issue list
  • gh issue view 123
  • gh issue close 123

新手建议先从网页操作入手,熟悉概念后再尝试命令行。命令行是真实开发中更常用的方式。

与其他功能的关系

关系(前置依赖 / 包含从属 / 概念升级 / 流程承接)说明
前置依赖创建仓库(Create Repository)在仓库中创建 issue 追踪工作
包含从属里程碑(Milestone)里程碑把一批 issue/PR 归组到目标版本
包含从属Projects 看板(Projects Kanban)issue 作为 items 进入项目看板
流程承接拉取请求(Pull Request)PR 中用 fixes: 关键词可自动关闭关联 issue,先懂 issue

官方文档

小结

SUMMARY

Issue 是项目的待办+讨论中心:建任务、贴标签、派人、挂里程碑、用 PR 自动关闭。凡是不能当场做完的事,都值得先开一个 Issue。下一步学里程碑,把一堆 Issue 归到版本计划里。